Example #1
0
 public static PositionCheckNode createNode(
     ElementAccessMode mode,
     RType containerType,
     Object position,
     int positionIndex,
     int numDimensions,
     boolean exact,
     boolean replace,
     boolean recursive) {
   if (mode.isSubset()) {
     return PositionCheckSubsetNodeGen.create(
         mode, containerType, position, positionIndex, numDimensions, exact, replace);
   } else {
     return PositionCheckSubscriptNodeGen.create(
         mode, containerType, position, positionIndex, numDimensions, exact, replace, recursive);
   }
 }
Example #2
0
 PositionCheckNode(
     ElementAccessMode mode,
     RType containerType,
     Object positionValue,
     int dimensionIndex,
     int numDimensions,
     boolean exact,
     boolean replace) {
   this.positionClass = positionValue.getClass();
   this.dimensionIndex = dimensionIndex;
   this.numDimensions = numDimensions;
   this.replace = replace;
   this.containerType = containerType;
   this.castNode = PositionCastNode.create(mode, replace);
   if (positionValue instanceof String || positionValue instanceof RAbstractStringVector) {
     boolean useNAForNotFound = !replace && isListLike(containerType) && mode.isSubscript();
     characterLookup =
         new PositionCharacterLookupNode(
             mode, numDimensions, dimensionIndex, useNAForNotFound, exact);
   }
 }