/* * Copyright (C) 2005-2010 Alfresco Software Limited. * * This file is part of Alfresco * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . */ package org.alfresco.repo.dictionary; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.List; import org.alfresco.service.cmr.dictionary.ModelDefinition; import org.alfresco.service.cmr.dictionary.NamespaceDefinition; import org.alfresco.service.namespace.NamespacePrefixResolver; import org.alfresco.service.namespace.QName; /** * Compiled Model Definition * * @author David Caruana * */ public class M2ModelDefinition implements ModelDefinition { private QName name; private M2Model model; /*package*/ M2ModelDefinition(M2Model model, NamespacePrefixResolver resolver) { this.name = QName.createQName(model.getName(), resolver); this.model = model; } /* (non-Javadoc) * @see org.alfresco.repo.dictionary.ModelDefinition#getName() */ public QName getName() { return name; } /* (non-Javadoc) * @see org.alfresco.repo.dictionary.ModelDefinition#getDescription() */ public String getDescription() { String value = M2Label.getLabel(this, null, null, "description"); if (value == null) { value = model.getDescription(); } return value; } /* (non-Javadoc) * @see org.alfresco.repo.dictionary.ModelDefinition#getAuthor() */ public String getAuthor() { return model.getAuthor(); } /* (non-Javadoc) * @see org.alfresco.repo.dictionary.ModelDefinition#getPublishedDate() */ public Date getPublishedDate() { return model.getPublishedDate(); } /* (non-Javadoc) * @see org.alfresco.repo.dictionary.ModelDefinition#getVersion() */ public String getVersion() { return model.getVersion(); } /* (non-Javadoc) * @see org.alfresco.service.cmr.dictionary.ModelDefinition#getNamespaces() */ public Collection getNamespaces() { List namespaces = new ArrayList(); for (M2Namespace namespace : model.getNamespaces()) { namespaces.add(new M2NamespaceDefinition(this, namespace.getUri(), namespace.getPrefix())); } return namespaces; } /* (non-Javadoc) * @see org.alfresco.service.cmr.dictionary.ModelDefinition#isNamespaceDefined(java.lang.String) */ public boolean isNamespaceDefined(String uri) { for (M2Namespace namespace : model.getNamespaces()) { if (namespace.getUri().equals(uri)) { return true; } } return false; } /* (non-Javadoc) * @see org.alfresco.service.cmr.dictionary.ModelDefinition#getImportedNamespaces() */ public Collection getImportedNamespaces() { List namespaces = new ArrayList(); for (M2Namespace namespace : model.getImports()) { namespaces.add(new M2NamespaceDefinition(this, namespace.getUri(), namespace.getPrefix())); } return namespaces; } /* (non-Javadoc) * @see org.alfresco.service.cmr.dictionary.ModelDefinition#isNamespaceImported(java.lang.String) */ public boolean isNamespaceImported(String uri) { for (M2Namespace namespace : model.getImports()) { if (namespace.getUri().equals(uri)) { return true; } } return false; } }