/** * Used to save a model entry * * @param model * @throws Exception */ ModelElement(final DynamicModel model) throws Exception { super(); name = model.getName(); type = model.getModelType().toString(); visible = model.isVisible(); path = null; // Not used by dynamic vdbs if (model.getDescription() != null && !model.getDescription().isEmpty()) { description = model.getDescription(); } getComments().add(model.getComments()); for (VdbSource source : model.getSources()) { getSources().add(new SourceElement(source)); } if (model.isMultiSource()) getProperties() .add(new PropertyElement(MULTI_SOURCE, Boolean.toString(model.isMultiSource()))); if (model.doAddColumn()) getProperties() .add(new PropertyElement(MULTI_SOURCE_ADD_COLUMN, Boolean.toString(model.doAddColumn()))); String alias = model.getColumnAlias(); if (alias != null && alias.length() > 0) getProperties().add(new PropertyElement(MULTI_SOURCE_COLUMN_ALIAS, alias)); for (Map.Entry<Object, Object> entry : model.getProperties().entrySet()) { getProperties() .add(new PropertyElement(entry.getKey().toString(), entry.getValue().toString())); } // Append any comments to the property elements for (PropertyElement propElement : getProperties()) { CommentSets propertyComments = model.getPropertyComments(propElement.getName()); propElement.getComments().add(propertyComments); } Metadata metadata = model.getMetadata(); if (metadata != null && metadata.getSchemaText() != null) { MetadataElement metadataElement = new MetadataElement(metadata.getSchemaText(), metadata.getType().name()); metadataElement.getComments().add(metadata.getComments()); getMetadata().add(metadataElement); } }