Author: schor
Date: Fri Jan 13 15:41:29 2017
New Revision: 1778619

URL: http://svn.apache.org/viewvc?rev=1778619&view=rev
Log:
[UIMA-5225] have getAddress hold onto the FS for future ref.  Remove unused 
validation flag. Support old version of prettyPrint that uses StringBuffer (not 
StringBuilder). support the hold-onto-all-fss style

Modified:
    
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java?rev=1778619&r1=1778618&r2=1778619&view=diff
==============================================================================
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java
 Fri Jan 13 15:41:29 2017
@@ -77,10 +77,7 @@ public class FeatureStructureImplC imple
 
   public static final String DISABLE_RUNTIME_FEATURE_VALUE_VALIDATION = 
"uima.disable_runtime_feature_value_validation";
   public static final boolean IS_ENABLE_RUNTIME_FEATURE_VALUE_VALIDATION  = 
!Misc.getNoValueSystemProperty(DISABLE_RUNTIME_FEATURE_VALUE_VALIDATION);
-
-  public static final String DISABLE_RUNTIME_FEATURE_RANGE_VALIDATION = 
"uima.disable_runtime_feature_range_validation";
-  public static final boolean IS_ENABLE_RUNTIME_FEATURE_RANGE_VALIDATION  = 
!Misc.getNoValueSystemProperty(DISABLE_RUNTIME_FEATURE_RANGE_VALIDATION);
-  
+ 
   private  static final boolean traceFSs = CASImpl.traceFSs;
     
   // next is for experiment (Not implemented) of allocating multiple int 
arrays for different fss
@@ -201,6 +198,8 @@ public class FeatureStructureImplC imple
     if (traceFSs && !(this instanceof CommonArrayFS)) {
       _casView.traceFSCreate(this);
     }
+    
+    _casView.maybeHoldOntoFS(this);
   }
 
   /**
@@ -236,6 +235,8 @@ public class FeatureStructureImplC imple
       _casView.traceFSCreate(this);
     }
     
+    _casView.maybeHoldOntoFS(this);
+
 //    if (_typeImpl.featUimaUID != null) {
 //      final int id = _casView.getAndIncrUimaUID();
 //      _setLongValueNcNj(_typeImpl.featUimaUID, id);
@@ -318,7 +319,9 @@ public class FeatureStructureImplC imple
    * @return the internal id of this fs - unique to this CAS, a positive int
    */
   @Override
-  public final int getAddress() { return _id; };
+  public final int getAddress() {
+    return  _casView.ll_getFSRef(this);  // adds this fs to the internal map 
if needed
+  };
 
   @Override
   public final int _id() {return _id; };
@@ -514,7 +517,7 @@ public class FeatureStructureImplC imple
   @Override
   public void setStringValue(Feature feat, String v) {
 //    if (IS_ENABLE_RUNTIME_FEATURE_VALIDATION) featureValidation(feat);  // 
done by _setRefValueCJ
-    if (IS_ENABLE_RUNTIME_FEATURE_VALUE_VALIDATION) 
featureValueValidation(feat, v); // verifies feat can take a string
+//    if (IS_ENABLE_RUNTIME_FEATURE_VALUE_VALIDATION) 
featureValueValidation(feat, v); // verifies feat can take a string
     subStringRangeCheck(feat, v);
     _setRefValueCJ((FeatureImpl) feat, v);
   }
@@ -1015,6 +1018,17 @@ public class FeatureStructureImplC imple
     prettyPrint(indent, incr, buf, useShortNames, s, printRefs);
   }
 
+  // old version from v2 using StringBuffer
+  /**
+   * 
+   * @param indent -
+   * @param incr -
+   * @param buf -
+   * @param useShortNames -
+   * @param s -
+   * @param printRefs -
+   * @deprecated because uses StringBuffer, not builder, for version 2 
compatibility only
+   */
   public void prettyPrint(
       int indent, 
       int incr, 
@@ -1056,7 +1070,11 @@ public class FeatureStructureImplC imple
       buf.append(' ');
     }
     if (_typeImpl == null) {
-      buf.append((_id == 0) ? " Special REMOVED marker " : " Special Search 
Key, id = " + _id);
+      buf.append((_id == 0) 
+                  ? " Special REMOVED marker " 
+                  : _isJCasHashMapReserve() 
+                     ? (" Special JCasHashMap Reserve, id = " + _id)
+                     : " Special Search Key, id = " + _id);
     } else {
       if (useShortNames) {
         buf.append(getType().getShortName());
@@ -1319,7 +1337,7 @@ public class FeatureStructureImplC imple
    * All callers of this must insure fs is not indexed in **Any** View
    */
   protected void _resetInSetSortedIndex() { _flags &= 
~_BIT_IN_SET_SORTED_INDEX; }
-  
+    
   protected void _setJCasHashMapReserve() {
     _flags |= _BIT_JCASHASHMAP_RESERVE;
   }


Reply via email to