@Override
  public void visit(final Relation relation) {
    if (relation != null && model != null) {
      NamedNodeMap attrs = currentTag.getAttributes();
      Node lefna = attrs.getNamedItem(LEFT_ENTITY_FIELD_ATTR_NAME);
      Node lepna = attrs.getNamedItem(LEFT_ENTITY_PARAMETER_ATTR_NAME);
      Node refna = attrs.getNamedItem(RIGHT_ENTITY_FIELD_ATTR_NAME);
      Node repna = attrs.getNamedItem(RIGHT_ENTITY_PARAMETER_ATTR_NAME);

      final String leftEntityId = readAttribute(LEFT_ENTITY_ID_ATTR_NAME, null);
      final String leftFieldName = lefna != null ? lefna.getNodeValue() : null;
      final String leftParameterName = lepna != null ? lepna.getNodeValue() : null;
      final String rightEntityId = readAttribute(RIGHT_ENTITY_ID_ATTR_NAME, null);
      final String rightFieldName = refna != null ? refna.getNodeValue() : null;
      final String rightParameterName = repna != null ? repna.getNodeValue() : null;

      model.addRelation(relation);

      Runnable resolver =
          new Runnable() {
            @Override
            public void run() {
              try {
                Entity lEntity = model.getEntityById(leftEntityId);
                if (lEntity != null) {
                  if (leftParameterName != null && !leftParameterName.isEmpty()) {
                    relation.setLeftField(
                        lEntity.getQuery().getParameters().get(leftParameterName));
                  } else if (leftFieldName != null && !leftFieldName.isEmpty()) {
                    relation.setLeftField(lEntity.getFields().get(leftFieldName));
                  }
                }
                relation.setLeftEntity(lEntity);
                lEntity.addOutRelation(relation);

                Entity rEntity = model.getEntityById(rightEntityId);
                if (rEntity != null) {
                  if (rightParameterName != null && !rightParameterName.isEmpty()) {
                    relation.setRightField(
                        rEntity.getQuery().getParameters().get(rightParameterName));
                  } else if (rightFieldName != null && !rightFieldName.isEmpty()) {
                    relation.setRightField(rEntity.getFields().get(rightFieldName));
                  }
                }
                relation.setRightEntity(rEntity);
                rEntity.addInRelation(relation);
              } catch (Exception ex) {
                Logger.getLogger(XmlDom2Model.class.getName()).log(Level.SEVERE, null, ex);
              }
            }
          };
      relationsResolvers.add(resolver);
    }
  }
 @Override
 public void visit(Entity entity) {
   NamedNodeMap attrs = currentTag.getAttributes();
   Node a = attrs.getNamedItem(DATASOURCE_NAME_TAG_NAME);
   if (a != null) {
     entity.setName(a.getNodeValue());
   }
   a = attrs.getNamedItem(DATASOURCE_TITLE_TAG_NAME);
   if (a != null) {
     entity.setTitle(a.getNodeValue());
   }
   readEntity(entity);
 }
  @Override
  public void visit(final ReferenceRelation relation) {
    visit((Relation) relation);
    NamedNodeMap attrs = currentTag.getAttributes();
    Node scalarna = attrs.getNamedItem(SCALAR_PROP_NAME_ATTR_NAME);
    Node collectionna = attrs.getNamedItem(COLLECTION_PROP_NAME_ATTR_NAME);

    String scalarPropertyName = scalarna != null ? scalarna.getNodeValue() : null;
    ;
    String collectionPropertyName = collectionna != null ? collectionna.getNodeValue() : null;
    ;
    relation.setScalarPropertyName(scalarPropertyName != null ? scalarPropertyName.trim() : null);
    relation.setCollectionPropertyName(
        collectionPropertyName != null ? collectionPropertyName.trim() : null);
  }
 private static String getAttributeValue(Node node, String attributeName) {
   NamedNodeMap attrs = node.getAttributes();
   Node _attributeNode = null;
   _attributeNode = attrs.getNamedItem("name");
   if (_attributeNode == null) return null;
   else return _attributeNode.getNodeValue();
 }
 protected Date readDateAttribute(String attributeName, Date defaultValue) {
   Node a = currentTag.getAttributes().getNamedItem(attributeName);
   if (a != null) {
     return new Date(Long.valueOf(a.getNodeValue()));
   }
   return defaultValue;
 }
 protected String readAttribute(String attributeName, String defaultValue) {
   Node a = currentTag.getAttributes().getNamedItem(attributeName);
   if (a != null) {
     return a.getNodeValue();
   }
   return defaultValue;
 }
 protected BigInteger readBigIntegerAttribute(String attributeName, BigInteger defaultValue) {
   Node a = currentTag.getAttributes().getNamedItem(attributeName);
   if (a != null) {
     return new BigInteger(a.getNodeValue());
   }
   return defaultValue;
 }
 protected Boolean readBooleanAttribute(String attributeName, Boolean defaultValue) {
   Node a = currentTag.getAttributes().getNamedItem(attributeName);
   if (a != null) {
     return Boolean.valueOf(a.getNodeValue());
   }
   return defaultValue;
 }
 protected Float readFloatAttribute(String attributeName, Float defaultValue) {
   Node a = currentTag.getAttributes().getNamedItem(attributeName);
   if (a != null) {
     return Float.valueOf(a.getNodeValue());
   }
   return defaultValue;
 }
  public static ArrayList<String> getUsedFqnFromHits(String xmlResultInString) {
    ArrayList<String> usedFqns = new ArrayList<String>();

    Document doc = XMLParser.parse(xmlResultInString);
    NodeList _arrs = doc.getElementsByTagName("arr");

    for (int i = 0; i < _arrs.getLength(); i++) {
      Node _arr = _arrs.item(i);
      NamedNodeMap _nnm = _arr.getAttributes();
      if (_nnm != null) {
        Node _nameNode = _nnm.getNamedItem("name");
        if (_nameNode != null) {
          String _nodeType = _nameNode.getNodeValue();
          if (_nodeType.equals("lib_use_fqn_full")
              || _nodeType.equals("jdk_use_fqn_full")
              || _nodeType.equals("local_use_fqn_full")) {
            NodeList _fqns = _arr.getChildNodes();
            for (int j = 0; j < _fqns.getLength(); j++) {
              Node _fqn = _fqns.item(j);
              if (_fqn.getNodeName().equals("str")) {
                String _usedFqn = _fqn.getFirstChild().getNodeValue();
                usedFqns.add(_usedFqn);
              }
            }
          }
        }
      }
    }
    return usedFqns;
  }
  public static ArrayList<String> getHitEidsFromHits(String xmlResultInString) {
    ArrayList<String> _hitEids = new ArrayList<String>();
    Document doc = XMLParser.parse(xmlResultInString);
    NodeList hits = doc.getElementsByTagName("doc");

    for (int i = 0; i < hits.getLength(); i++) {
      Node hit = hits.item(i);

      NodeList hitDocChildNodes = hit.getChildNodes();

      String entity_id = "";

      for (int j = 0; j < hitDocChildNodes.getLength(); j++) {
        Node hitDocChildNode = hitDocChildNodes.item(j);

        NamedNodeMap attrs = hitDocChildNode.getAttributes();
        Node _attributeNode = null;
        _attributeNode = attrs.getNamedItem("name");

        if (_attributeNode != null) {
          if (_attributeNode.getNodeValue().equals("entity_id")) {
            entity_id = hitDocChildNode.getFirstChild().getNodeValue();
          }
        }
      }

      _hitEids.add(entity_id);
    }

    return _hitEids;
  }
Exemple #12
0
 public static String getXmlNodeValue(Node node) {
   if (node.getNodeType() != Node.ELEMENT_NODE) {
     return null;
   }
   String ret = "";
   NodeList textNodes = node.getChildNodes();
   for (int i = 0; i < textNodes.getLength(); i++) {
     Node n = textNodes.item(i);
     if (n.getNodeType() == Node.TEXT_NODE
         && n.getNodeValue().replaceAll("[ \\n\\t\\r]", "").length() > 0) {
       ret += n.getNodeValue();
     } else if (n.getNodeType() == Node.CDATA_SECTION_NODE) {
       ret += n.getNodeValue();
     }
   }
   return ret.length() == 0 ? null : ret.replaceAll("^\\s+", "").replaceAll("\\s+$", "");
 }
Exemple #13
0
 protected ForeignKeySpec.ForeignKeyRule readForeignKeyRuleAttribute(
     String attributeName, ForeignKeySpec.ForeignKeyRule defaultValue) {
   try {
     Node a = currentTag.getAttributes().getNamedItem(attributeName);
     return ForeignKeySpec.ForeignKeyRule.valueOf(a.getNodeValue());
   } catch (Exception ex) {
     return defaultValue;
   }
 }
Exemple #14
0
    /** return the text content of a tag in a xml document. */
    public static String getXmlNodeValue(Document doc, String tag) {
      if (doc == null) return null;

      NodeList list = doc.getElementsByTagName(tag);
      if (list.getLength() == 0) return null;

      Node node = list.item(0);
      if (node.getNodeType() != Node.ELEMENT_NODE) return null;

      String ret = "";
      NodeList textNodes = node.getChildNodes();
      for (int i = 0; i < textNodes.getLength(); i++) {
        Node n = textNodes.item(i);
        if (n.getNodeType() == Node.TEXT_NODE
            && n.getNodeValue().replaceAll("[ \\n\\t\\r]", "").length() > 0)
          ret += n.getNodeValue();
      }
      return ret.length() == 0 ? null : ret;
    }
Exemple #15
0
        public void onResponseReceived(Request request, Response response) {
          String text = response.getText();
          String url = null;
          Document document = null;

          String bpath = "<" + TAG_BLOBSTORE_PATH + ">";
          String sbpath = "</" + TAG_BLOBSTORE_PATH + ">";
          if (text.contains(bpath)) {
            try {
              document = XMLParser.parse(text);
              url = Utils.getXmlNodeValue(document, TAG_BLOBSTORE_PATH);
            } catch (Exception e) {
              cancelUpload(
                  i18nStrs.uploaderBlobstoreError() + "\n>>>\n" + e.getMessage() + "\n>>>>\n" + e);
              return;
            }
            if (url == null) {
              url =
                  text.replaceAll("[\r\n]+", "")
                      .replaceAll("^.*" + bpath + "\\s*", "")
                      .replaceAll("\\s*" + sbpath + ".*$", "");
            }
          }
          if (url != null && url.length() > 0 && !"null".equalsIgnoreCase(url)) {
            if (session.getServletPath().startsWith("http")) {
              url = session.getServletPath().replaceFirst("(https?://[^/]+).*", "$1") + url;
            }
            uploadForm.setAction(url);
          } else {
            uploadForm.setAction(session.getServletPath());
          }
          removeHiddens();
          if (document != null) {
            String name = Utils.getXmlNodeValue(document, TAG_BLOBSTORE_NAME);
            if (name != null) {
              fileInput.setName(name);
            }
            NodeList list = document.getElementsByTagName(TAG_BLOBSTORE_PARAM);
            for (int i = 0; i < list.getLength(); i++) {
              Node node = list.item(i);
              String value = Utils.getXmlNodeValue(node);
              if (value != null) {
                Node attribute = node.getAttributes().getNamedItem(ATTR_BLOBSTORE_PARAM_NAME);
                if (attribute != null) {
                  String paramName = attribute.getNodeValue();
                  if (paramName != null) {
                    addHidden(paramName, value);
                  }
                }
              }
            }
          }
          receivedBlobPath = true;
          uploadForm.submit();
        }
Exemple #16
0
 private void visit(PrimaryKeySpec pk) {
   if (pk != null) {
     NamedNodeMap attrs = currentTag.getAttributes();
     Node a = attrs.getNamedItem(CONSTRAINT_NAME_ATTR_NAME);
     if (a != null) {
       pk.setCName(a.getNodeValue());
     }
     a = attrs.getNamedItem(CONSTRAINT_SCHEMA_ATTR_NAME);
     if (a != null) {
       pk.setSchema(a.getNodeValue());
     }
     a = attrs.getNamedItem(CONSTRAINT_TABLE_ATTR_NAME);
     if (a != null) {
       pk.setTable(a.getNodeValue());
     }
     a = attrs.getNamedItem(CONSTRAINT_FIELD_ATTR_NAME);
     if (a != null) {
       pk.setField(a.getNodeValue());
     }
   }
 }
  public static HitsStat getStatsFromHits(String xmlResultInString) {
    long start = 0;
    long numResults = 0;
    double timeTaken = 0;

    Node responseNode = getResponseNode(xmlResultInString);

    if (responseNode == null) return null;

    NamedNodeMap attrs = responseNode.getAttributes();
    Node _numFoundNode = attrs.getNamedItem("numFound");
    Node _startNode = attrs.getNamedItem("start");

    if (_numFoundNode != null) {
      numResults = Long.parseLong(_numFoundNode.getNodeValue());
    }

    if (_startNode != null) {
      start = Long.parseLong(_startNode.getNodeValue());
    }

    return new HitsStat(start, numResults, timeTaken);
  }
  public static List<HitFqnEntityId> getFqnEntityIdFromHits(String xmlResultInString) {

    List<HitFqnEntityId> hitsInfo = new LinkedList<HitFqnEntityId>();

    Node responseNode = getResponseNode(xmlResultInString);
    NodeList hits = responseNode.getChildNodes();

    for (int i = 0; i < hits.getLength(); i++) {
      String fqn = "";
      String entity_id = "";

      Node hit = hits.item(i);
      if (!hit.getNodeName().equals("doc")) continue;

      NodeList hitDocChildNodes = hit.getChildNodes();

      for (int j = 0; j < hitDocChildNodes.getLength(); j++) {
        Node hitDocChildNode = hitDocChildNodes.item(j);

        NamedNodeMap attrs = hitDocChildNode.getAttributes();
        Node _attributeNode = null;
        _attributeNode = attrs.getNamedItem("name");

        if (_attributeNode != null) {
          if (_attributeNode.getNodeValue().equals("entity_id")) {
            entity_id = hitDocChildNode.getFirstChild().getNodeValue();
          } else if (_attributeNode.getNodeValue().equals("fqn_full")) {
            fqn = hitDocChildNode.getFirstChild().getNodeValue();
          }
        }
      }

      hitsInfo.add(new HitFqnEntityId(fqn, entity_id));
    }
    return hitsInfo;
  }
  public static List<HitFqnEntityId> getUsedApisFromFacetedHits(
      String xmlResultInString, EntityCategory c) {

    //		if (c.equals(EntityCategory.LOCAL))
    //			throw new IllegalArgumentException("only jdk or lib");

    List<HitFqnEntityId> apis = new LinkedList<HitFqnEntityId>();

    Document doc = XMLParser.parse(xmlResultInString);
    NodeList apisNodes = doc.getElementsByTagName("lst");

    String nodeName;

    if (c.equals(EntityCategory.JDK)) nodeName = "jdk_use_fqn_full";
    else if (c.equals(EntityCategory.LIB)) nodeName = "lib_use_fqn_full";
    else return apis;

    for (int i = 0; i < apisNodes.getLength(); i++) {
      Node apiNode = apisNodes.item(i);
      NamedNodeMap attrs = apiNode.getAttributes();
      Node _attributeNode = null;
      _attributeNode = attrs.getNamedItem("name");

      if (_attributeNode != null) {
        if (_attributeNode.getNodeValue().equals(nodeName)) {
          // iterate through int nodes
          NodeList fqnNodes = apiNode.getChildNodes();

          for (int j = 0; j < fqnNodes.getLength(); j++) {
            Node fqnNode = fqnNodes.item(j);
            if (fqnNode.getNodeName().equals("int")) {
              String fqn = getAttributeValue(fqnNode, "name");
              if (fqn != null) {
                String count = fqnNode.getFirstChild().getNodeValue();

                HitFqnEntityId _apiFqn = new HitFqnEntityId(fqn, "-1", count);
                apis.add(_apiFqn);
              }
            }
          }
        }
      }
    }

    return apis;
  }
  private static Node getResponseNode(String xmlResultInString) {

    Document doc = XMLParser.parse(xmlResultInString);
    NodeList results = doc.getElementsByTagName("result");

    for (int i = 0; i < results.getLength(); i++) {
      Node result = results.item(i);
      NamedNodeMap attrs = result.getAttributes();
      Node _attributeNode = null;
      _attributeNode = attrs.getNamedItem("name");

      if (_attributeNode != null) {
        if (_attributeNode.getNodeValue().equals("response")) {

          return result;
        }
      }
    }

    return null;
  }
Exemple #21
0
  @Override
  public void visit(Field aField) {
    try {
      NamedNodeMap attrs = currentTag.getAttributes();
      Node a = attrs.getNamedItem(NAME_ATTR_NAME);
      if (a != null) {
        aField.setName(a.getNodeValue());
      }
      a = attrs.getNamedItem(DESCRIPTION_ATTR_NAME);
      if (a != null) {
        aField.setDescription(a.getNodeValue());
      }
      a = attrs.getNamedItem(TYPE_ATTR_NAME);
      if (a != null) {
        aField.setType(a.getNodeValue());
      }
      aField.setNullable(readBooleanAttribute(NULLABLE_ATTR_NAME, true));
      aField.setPk(readBooleanAttribute(IS_PK_ATTR_NAME, false));

      if (aField instanceof Parameter) {
        ((Parameter) aField).setMode(readIntegerAttribute(MODE_ATTR_NAME, 0 /*
																					 * ParameterMetaData.
																					 * parameterModeUnknown
																					 */));
        if (currentTag.getAttributes().getNamedItem(SELECTION_FORM_TAG_NAME) != null
            && !"null"
                .equals(
                    currentTag
                        .getAttributes()
                        .getNamedItem(SELECTION_FORM_TAG_NAME)
                        .getNodeValue()))
          ((Parameter) aField).setSelectionForm(readDoubleAttribute(SELECTION_FORM_TAG_NAME, null));
      }
      Element lcurrentTag = currentTag;
      try {
        currentTag = Utils.getElementByTagName(currentTag, PRIMARY_KEY_TAG_NAME);
        if (currentTag != null) {
          PrimaryKeySpec pk = new PrimaryKeySpec();
          visit(pk);
          ForeignKeySpec fk =
              new ForeignKeySpec(
                  "",
                  "",
                  "",
                  "",
                  ForeignKeySpec.ForeignKeyRule.CASCADE,
                  ForeignKeySpec.ForeignKeyRule.CASCADE,
                  false,
                  pk.getSchema(),
                  pk.getTable(),
                  pk.getField(),
                  pk.getCName());
          aField.setFk(fk);
        }
      } finally {
        currentTag = lcurrentTag;
      }
    } catch (NumberFormatException ex) {
      Logger.getLogger(XmlDom2Model.class.getName()).log(Level.SEVERE, null, ex);
    }
  }