/** Marshall the given parameter object, and output to a SdkJsonGenerator */
  public void marshall(IPSet iPSet, StructuredJsonGenerator jsonGenerator) {

    if (iPSet == null) {
      throw new SdkClientException("Invalid argument passed to marshall(...)");
    }

    try {
      jsonGenerator.writeStartObject();

      if (iPSet.getIPSetId() != null) {
        jsonGenerator.writeFieldName("IPSetId").writeValue(iPSet.getIPSetId());
      }
      if (iPSet.getName() != null) {
        jsonGenerator.writeFieldName("Name").writeValue(iPSet.getName());
      }

      java.util.List<IPSetDescriptor> iPSetDescriptorsList = iPSet.getIPSetDescriptors();
      if (iPSetDescriptorsList != null) {
        jsonGenerator.writeFieldName("IPSetDescriptors");
        jsonGenerator.writeStartArray();
        for (IPSetDescriptor iPSetDescriptorsListValue : iPSetDescriptorsList) {
          if (iPSetDescriptorsListValue != null) {

            IPSetDescriptorJsonMarshaller.getInstance()
                .marshall(iPSetDescriptorsListValue, jsonGenerator);
          }
        }
        jsonGenerator.writeEndArray();
      }

      jsonGenerator.writeEndObject();
    } catch (Throwable t) {
      throw new SdkClientException("Unable to marshall request to JSON: " + t.getMessage(), t);
    }
  }
  public IPSet unmarshall(JsonUnmarshallerContext context) throws Exception {
    IPSet iPSet = new IPSet();

    int originalDepth = context.getCurrentDepth();
    String currentParentElement = context.getCurrentParentElement();
    int targetDepth = originalDepth + 1;

    JsonToken token = context.getCurrentToken();
    if (token == null) token = context.nextToken();
    if (token == VALUE_NULL) return null;

    while (true) {
      if (token == null) break;

      if (token == FIELD_NAME || token == START_OBJECT) {
        if (context.testExpression("IPSetId", targetDepth)) {
          context.nextToken();
          iPSet.setIPSetId(StringJsonUnmarshaller.getInstance().unmarshall(context));
        }
        if (context.testExpression("Name", targetDepth)) {
          context.nextToken();
          iPSet.setName(StringJsonUnmarshaller.getInstance().unmarshall(context));
        }
        if (context.testExpression("IPSetDescriptors", targetDepth)) {
          context.nextToken();
          iPSet.setIPSetDescriptors(
              new ListUnmarshaller<IPSetDescriptor>(IPSetDescriptorJsonUnmarshaller.getInstance())
                  .unmarshall(context));
        }
      } else if (token == END_ARRAY || token == END_OBJECT) {
        if (context.getLastParsedParentElement() == null
            || context.getLastParsedParentElement().equals(currentParentElement)) {
          if (context.getCurrentDepth() <= originalDepth) break;
        }
      }
      token = context.nextToken();
    }

    return iPSet;
  }
예제 #3
0
  public DBQuery(
      SpecializedGraph sg,
      List<VarDesc> varList,
      boolean queryOnlyStmt,
      boolean queryOnlyReif,
      boolean queryFullReif) {

    argCnt = 0;
    argType = "";
    argIndex = new ArrayList<Integer>();
    aliasCnt = 0;
    stmt = "";
    isMultiModel = true; // for now
    isSingleValued = false; // for now
    isCacheable = true;
    if (sg != null) {
      pset = sg.getPSet();
      isReifier = sg instanceof SpecializedGraphReifier;
      isEmpty = false;
      graphId = sg.getGraphId();
      table = pset.getTblName();
      driver = pset.driver();
    } else {
      pset = null;
      isReifier = false;
      isEmpty = true;
      driver = null;
    }
    sqlAnd = new IRDBDriver.GenSQLAnd();
    qryOnlyStmt = queryOnlyStmt;
    qryOnlyReif = queryOnlyReif;
    qryFullReif = queryFullReif;
    // array of variable bound by query
    vars = new VarDesc[varList.size()];
    for (varCnt = 0; varCnt < varList.size(); varCnt++) {
      vars[varCnt] = varList.get(varCnt);
    }
  }