/** * See ConcreteTreeRepNode.getDependantsInDatabase * * @param hbSession * @return */ @Override public List<TreeRepNode> getDependantsInDatabase(Session hbSession) { ArrayList<TreeRepNode> dependants = new ArrayList<TreeRepNode>(); // format fields are used by variable format fields // find variable format fields in database String queryVariableFormatFields = "select varFormatField from VariableFormatField varFormatField " + "join varFormatField.formatField formatField " + "where formatField.id=:ID"; Query hibQuery = hbSession.createQuery(queryVariableFormatFields); hibQuery.setParameter("ID", formatField.getID()); List variableFormatFields = hibQuery.list(); // create node wrapping each found record. for (Object obj : variableFormatFields) { dependants.add( new VariableFormatFieldNode(DeepDeleteUtil.getProxyImpl((VariableFormatField) obj))); } return dependants; }
/** * See ConcreteTreeRepNode.makeChildren * * @param nodeSet * @param leafSet * @return */ @Override protected boolean makeChildren(MutableSet<TreeRepNode> nodeSet, Set<TreeRepNode> leafSet) { if (record.getSimpleFields() == null) { throw new RuntimeException("null simple fields in record!?!?!!"); } if (!record.getSimpleFields().getItems().isEmpty()) { for (Object simpleFieldObj : record.getSimpleFields().getItems()) { // contents of getItems should be no other type than SimpleField. SimpleField simpleField = (SimpleField) simpleFieldObj; DeepDeleteUtil.addNodeForSimpleType(simpleField, this, nodeSet, leafSet); } return true; } else { // record has no contents return false; } }
/** * See ConcreteTreeRepNode.getDependantsInDatabase * * @param hbSession * @return */ @Override public List<TreeRepNode> getDependantsInDatabase(Session hbSession) { return DeepDeleteUtil.getComplexFieldDependantsFromDB(this.record, hbSession); }