package org.drools.common; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import org.drools.reteoo.LeftTuple; import org.drools.reteoo.RightTuple; import org.drools.runtime.rule.WorkingMemoryEntryPoint; @XmlAccessorType(XmlAccessType.NONE) public class DisconnectedFactHandle implements InternalFactHandle { private int id; private int identityHashCode; private int objectHashCode; private long recency; private Object object; protected DisconnectedFactHandle() {} public DisconnectedFactHandle(int id, int identityHashCode, int objectHashCode, long recency, Object object) { this( id, identityHashCode, objectHashCode, recency ); this.object = object; } public DisconnectedFactHandle(int id, int identityHashCode, int objectHashCode, long recency) { this.id = id; this.identityHashCode = identityHashCode; this.objectHashCode = objectHashCode; this.recency = recency; } public DisconnectedFactHandle(String externalFormat) { String[] elements = externalFormat.split( ":" ); if ( elements.length != 5 ) { throw new IllegalArgumentException( "externalFormat did not have enough elements" ); } this.id = Integer.parseInt( elements[1] ); this.identityHashCode = Integer.parseInt( elements[2] ); this.objectHashCode = Integer.parseInt( elements[3] ); this.recency = Long.parseLong( elements[4] ); } public int getId() { return this.id; } public int getIdentityHashCode() { return this.identityHashCode; } public int getObjectHashCode() { return this.objectHashCode; } public long getRecency() { return this.recency; } public LeftTuple getLastLeftTuple() { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public Object getObject() { if ( this.object != null ) { return this.object; } throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public WorkingMemoryEntryPoint getEntryPoint() { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public EqualityKey getEqualityKey() { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public RightTuple getRightTuple() { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public void invalidate() { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public boolean isEvent() { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public boolean isValid() { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public void setEntryPoint(WorkingMemoryEntryPoint ep) { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public void setEqualityKey(EqualityKey key) { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public void setFirstLeftTuple(LeftTuple leftTuple) { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public void setObject(Object object) { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public void setRecency(long recency) { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public void setRightTuple(RightTuple rightTuple) { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public DefaultFactHandle clone() { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public String toExternalForm() { return "0:" + this.id + ":" + this.identityHashCode + ":" + this.objectHashCode + ":" + this.recency; } @XmlAttribute(name="external-form") public String getExternalForm() { return toExternalForm(); } public LeftTuple getFirstLeftTuple() { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public RightTuple getFirstRightTuple() { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public RightTuple getLastRightTuple() { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public void setFirstRightTuple(RightTuple rightTuple) { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public void setLastLeftTuple(LeftTuple leftTuple) { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public void setLastRightTuple(RightTuple rightTuple) { throw new UnsupportedOperationException( "DisonnectedFactHandle does not support this method" ); } public String toTupleTree(int indent) { return null; } public boolean isDisconnected() { throw new UnsupportedOperationException("Not supported yet."); } }