private void createPublisherNodeDefinition(final DynamicDefinition xpublisherNodeDefinition) { final PublisherNodeDefinitionBuilder publisherNodeDefinitionBuilder = new PublisherNodeDefinitionBuilder(); final String publisherNodeDefinitionName = xpublisherNodeDefinition.getName(); // Déclaration des champs string final List<DynamicDefinition> stringFields = xpublisherNodeDefinition.getChildDefinitions(PublisherGrammar.STRING_FIELD); for (final DynamicDefinition field : stringFields) { final String fieldName = field.getName(); publisherNodeDefinitionBuilder.addStringField(fieldName); } // Déclaration des champs boolean final List<DynamicDefinition> booleanFields = xpublisherNodeDefinition.getChildDefinitions(PublisherGrammar.BOOLEAN_FIELD); for (final DynamicDefinition field : booleanFields) { publisherNodeDefinitionBuilder.addBooleanField(field.getName()); } // Déclaration des champs images final List<DynamicDefinition> imageFields = xpublisherNodeDefinition.getChildDefinitions(PublisherGrammar.IMAGE_FIELD); for (final DynamicDefinition field : imageFields) { publisherNodeDefinitionBuilder.addImageField(field.getName()); } // Déclaration des champs data final List<DynamicDefinition> dataFields = xpublisherNodeDefinition.getChildDefinitions(PublisherGrammar.DATA_FIELD); for (final DynamicDefinition field : dataFields) { final String fieldName = field.getName(); final String refNodeName = field.getDefinitionName("type"); final PublisherNodeDefinition publisherNodeDefinition = getNodeDefinitionBuilder(refNodeName, fieldName, publisherNodeDefinitionName).build(); publisherNodeDefinitionBuilder.addNodeField(fieldName, publisherNodeDefinition); } // Déclaration des champs list final List<DynamicDefinition> listFields = xpublisherNodeDefinition.getChildDefinitions(PublisherGrammar.LIST_FIELD); for (final DynamicDefinition field : listFields) { final String fieldName = field.getName(); final String refNodeName = field.getDefinitionName("type"); final PublisherNodeDefinition publisherNodeDefinition = getNodeDefinitionBuilder(refNodeName, fieldName, publisherNodeDefinitionName).build(); publisherNodeDefinitionBuilder.addListField(fieldName, publisherNodeDefinition); } // System.out.println("Add " + publisherDataNodeName); publisherDefinitionMap.put(publisherNodeDefinitionName, publisherNodeDefinitionBuilder); unusedNodes.add(publisherNodeDefinitionName); }