diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowModelManager.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowModelManager.java | 279 |
1 files changed, 0 insertions, 279 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowModelManager.java b/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowModelManager.java deleted file mode 100644 index 5f57ddfac..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.facesconfig.ui/src/org/eclipse/jst/jsf/facesconfig/ui/pageflow/util/PageflowModelManager.java +++ /dev/null @@ -1,279 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 Sybase, Inc. and others. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sybase, Inc. - initial API and implementation - *******************************************************************************/ - -package org.eclipse.jst.jsf.facesconfig.ui.pageflow.util; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EPackage; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.emf.ecore.xmi.XMLResource; -import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPage; -import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.Pageflow; -import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowFactory; -import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowNode; -import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.PageflowPackage; -import org.eclipse.jst.jsf.facesconfig.ui.pageflow.model.impl.PageflowPackageImpl; - -/** - * Drives the model. Acts as the model entry point, including create, load, save - * operations. - * - * @author Xiao-guang Zhang - */ -public class PageflowModelManager { - /** - * In EMF, a resource provides the way to have access to the model content. - */ - private Resource resourcePageflow = null; - - /** - * the path of current pageflow model resource provides the way to have - * access to the model content. - */ - private IPath pathPageflow = null; - - /** - * Contains the factory associated with the model. - */ - private static PageflowFactory pageflowFactory = null; - - /** - * Gives access to the top level pageflow contained in the resource. - */ - private Pageflow pageflow = null; - - /** - * resource set - */ - private ResourceSet resourceSet = null; - - /** unicode encoding UTF-8 support */ - private static HashMap defaultSaveOptions = new HashMap(); - - static { - defaultSaveOptions.put(XMLResource.OPTION_ENCODING, "UTF-8"); //$NON-NLS-1$ - } - - /** - * Uses lazy initialization. - * - * @param path - - * pageflow file name - * @return the resource containing the pageflow - */ - public Resource getResource(IPath path) { - if (resourcePageflow == null) { - pathPageflow = path; - ResourceSet resSet = getResourceSet(); - resourcePageflow = resSet.getResource(URI.createPlatformResourceURI(path - .toString(), false), true); - } - - return resourcePageflow; - } - - /** - * - * @return the top level pageflow model - */ - public Pageflow getModel() { - if (null == pageflow) { - EList l = resourcePageflow.getContents(); - Iterator i = l.iterator(); - while (i.hasNext()) { - Object o = i.next(); - if (o instanceof Pageflow) { - pageflow = (Pageflow) o; - } - } - } - return pageflow; - } - - /** - * Creates a resource to contain the network. The resource file does not - * exist yet. - * - * @param path - * @return - */ - private Resource createResource(IPath path) { - if (resourcePageflow == null) { - pathPageflow = path; - ResourceSet resSet = getResourceSet(); - resourcePageflow = resSet.createResource(URI.createPlatformResourceURI(path - .toString(), false)); - } - return resourcePageflow; - } - - /** - * Returns the resource set. - * - * @param - * @return - */ - private ResourceSet getResourceSet() { - if (null == resourceSet) { - // Initialize the pageflow package, this line can not be removed. - PageflowPackageImpl.init(); - // Register the XML resource factory for the .pageflow extension - Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; - Map regMap = reg.getExtensionToFactoryMap(); - // m.put("pageflow", new XMIResourceFactoryImpl()); - regMap.put("pageflow", new PageflowResourceFactoryImpl()); - - resourceSet = new ResourceSetImpl(); - } - - return resourceSet; - } - - /** - * Returns the factory associated with the model. Object creation are made - * through that factory. - * - * @return - pageflow factory - */ - static public PageflowFactory getFactory() { - if (pageflowFactory == null) { - // Access the factory (needed to create instances) - Map registry = EPackage.Registry.INSTANCE; - String pageflowURI = PageflowPackage.eNS_URI; - PageflowPackage pageflowPackage = (PageflowPackage) registry - .get(pageflowURI); - pageflowFactory = pageflowPackage.getPageflowFactory(); - } - return pageflowFactory; - } - - /** - * Creates a new pageflow model with begin and end nodes. - * - * @param path - - * the new pageflow file name - * @return - new pageflow model - */ - public Pageflow createPageflow(IPath path) { - createResource(path); - // Create a new pageflow model - Map registry = EPackage.Registry.INSTANCE; - String pageflowURI = PageflowPackage.eNS_URI; - PageflowPackage nPackage = (PageflowPackage) registry.get(pageflowURI); - PageflowFactory nFactory = nPackage.getPageflowFactory(); - pageflow = nFactory.createPageflow(); - - resourcePageflow.getContents().add(pageflow); - return pageflow; - } - - /** - * Loads the content of the model from the file. - * - * @param path - */ - public void load(IPath path) { - getResource(path); - } - - /** - * reloads the content of the model from the file. - * - * @param path - */ - public void reload(IPath path) { - getResource(path).unload(); - load(path); - } - - /** - * Saves the content of the model to the file. - * - * @param path - * @throws IOException - */ - public void save(final IPath path) throws IOException { - if (!pathPageflow.toString().equalsIgnoreCase(path.toString())) { - pathPageflow = path; - URI fileURI = URI.createPlatformResourceURI(path.toString(), false); - resourcePageflow.setURI(fileURI); - } - resourcePageflow.save(defaultSaveOptions); - } - - /** - * get the file path of current pageflow resource - * - * @return - the file path - */ - public IPath getPath() { - return pathPageflow; - } - - /** - * @param webPath - * @return found page node according the web path. - */ - public PageflowPage foundPage(String webPath) { - PageflowPage page = null; - - if (getModel() != null) { - Iterator iterNodes = getModel().getNodes().iterator(); - while (iterNodes.hasNext()) { - PageflowNode node = (PageflowNode) iterNodes.next(); - if (node instanceof PageflowPage) { - if (((PageflowPage) node).getPath().equalsIgnoreCase(webPath)) { - page = (PageflowPage) node; - break; - } - } - } - } - - return page; - } - - /** - * - * Build a path for the resource in the .metadata directory given the path - * of the model resource. For example, given a model resource path of - * \test\folder\filename.ext the resulting Pageflow path name will be - * \test\.metadata\folder\filename.pageflow - * - * @param pathFacesConfig - - * faces-config file path. - * - * @return the ipath - */ - public static IPath makePageflowPath(IPath pathFacesConfig) { - IPath pageflowPath; - String[] segs = pathFacesConfig.removeFileExtension().segments(); - pageflowPath = new Path(segs[0]).makeAbsolute(); - pageflowPath = pageflowPath.append(".metadata"); - for (int i = 1; i < segs.length; i++) { - pageflowPath = pageflowPath.append(segs[i]); - } - // pageflowPath.removeFileExtension(); - pageflowPath = pageflowPath.addFileExtension("pageflow"); - return pageflowPath; - } -} |