/* * This software is Copyright 2005,2006,2007,2008 Langdale Consultants. * Langdale Consultants can be contacted at: http://www.langdale.com.au */ package au.com.langdale.cimtoole.builder; import java.util.Collection; import java.util.Collections; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import au.com.langdale.kena.OntModel; import au.com.langdale.cimtoole.CIMToolPlugin; import au.com.langdale.cimtoole.project.Info; import au.com.langdale.cimtoole.project.Task; /** * A Buildlet to serialize the merged schema for a project as an RDF/XML document. */ public class SchemaBuildlet extends Buildlet { @Override protected void build(IFile result, IProgressMonitor monitor) throws CoreException { IProject project = result.getProject(); IFolder folder = Info.getSchemaFolder(project); OntModel schema = CIMToolPlugin.getCache().getMergedOntologyWait(folder); Task.writeOntology(result, schema, "RDF/XML", monitor); } @Override protected Collection getOutputs(IResource file) throws CoreException { if( Info.isSchema(file)) { IProject project = file.getProject(); String name = Info.getProperty(project, Info.MERGED_SCHEMA_PATH); if( name != null && name.length() != 0) return Collections.singletonList(project.getFile(name)); } return Collections.EMPTY_LIST; } }