Author: schor Date: Sun Nov 1 14:26:21 2015 New Revision: 1711770 URL: http://svn.apache.org/viewvc?rev=1711770&view=rev Log: [UIMA-4663]
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/MarkerImpl.java Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/MarkerImpl.java URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/MarkerImpl.java?rev=1711770&r1=1711769&r2=1711770&view=diff ============================================================================== --- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/MarkerImpl.java (original) +++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/MarkerImpl.java Sun Nov 1 14:26:21 2015 @@ -38,60 +38,40 @@ import org.apache.uima.cas.Marker; public class MarkerImpl implements Marker { protected int nextFSId; //next FS addr - protected int nextStringHeapAddr; - protected int nextByteHeapAddr; - protected int nextShortHeapAddr; - protected int nextLongHeapAddr; protected boolean isValid; CASImpl cas; - MarkerImpl(int nextFSAddr, int nextStringHeapAddr, - int nextByteHeapAddr, int nextShortHeapAddr, int nextLongHeapAddr, - CASImpl cas) { + MarkerImpl(int nextFSAddr, CASImpl cas) { this.nextFSId = nextFSAddr; - this.nextStringHeapAddr = nextStringHeapAddr; - this.nextByteHeapAddr = nextByteHeapAddr; - this.nextShortHeapAddr = nextShortHeapAddr; - this.nextLongHeapAddr = nextLongHeapAddr; this.cas = cas; this.isValid = true; } - public boolean isNew(FeatureStructure fs) { + + + public boolean isNew(FeatureStructure aFs) { //check if same CAS instance //TODO: define a CASRuntimeException - if (!isValid || ((FeatureStructureImpl) fs).getCASImpl() != this.cas) { - CASRuntimeException e = new CASRuntimeException( - CASRuntimeException.CAS_MISMATCH, - new String[] { "FS and Marker are not from the same CAS." }); - throw e; + FeatureStructureImplC fs = (FeatureStructureImplC) aFs; + if (!isValid || !cas.isInCAS(fs)) { + throw new CASRuntimeException(CASRuntimeException.CAS_MISMATCH, "FS and Marker are not from the same CAS."); } - return isNew( ((FeatureStructureImpl) fs).getAddress()); + return isNew(fs.get_id()); } - public boolean isModified(FeatureStructure fs) { - if (!isValid || ((FeatureStructureImpl) fs).getCASImpl() != this.cas) { - CASRuntimeException e = new CASRuntimeException( - CASRuntimeException.CAS_MISMATCH, - new String[] { "FS and Marker are not from the same CAS." }); - throw e; - } - int addr = ((FeatureStructureImpl) fs).getAddress(); - return isModified(addr); - } - - boolean isNew(int addr) { - return (addr >= nextFSId); + public boolean isModified(FeatureStructure aFs) { + FeatureStructureImplC fs = (FeatureStructureImplC) aFs; + if (!isValid || !cas.isInCAS(fs)) { + throw new CASRuntimeException(CASRuntimeException.CAS_MISMATCH, "FS and Marker are not from the same CAS."); + } + return isModified(fs); } - boolean isModified(int addr) { - if (isNew(addr)) { - return false; - } - return this.cas.getModifiedFSList().contains(addr); + boolean isNew(int id) { + return (id >= nextFSId); } - + public boolean isValid() { return isValid; } @@ -99,21 +79,5 @@ public class MarkerImpl implements Marke public int getNextFSId() { return nextFSId; } - - public int getNextStringHeapAddr() { - return nextStringHeapAddr; - } - - public int getNextByteHeapAddr() { - return nextByteHeapAddr; - } - - public int getNextShortHeapAddr() { - return nextShortHeapAddr; - } - - public int getNextLongHeapAddr() { - return nextLongHeapAddr; - } }