Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/common/MergeUtils.java')
-rw-r--r--bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/common/MergeUtils.java167
1 files changed, 0 insertions, 167 deletions
diff --git a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/common/MergeUtils.java b/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/common/MergeUtils.java
deleted file mode 100644
index 5bf2d9433..000000000
--- a/bundles/org.eclipse.wst.ws/src/org/eclipse/wst/ws/internal/common/MergeUtils.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation 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:
- * IBM Corporation - initial API and implementation
- * yyyymmdd bug Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060330 128827 kathy@ca.ibm.com - Kathy Chan
- * 20060403 128827 kathy@ca.ibm.com - Kathy Chan
- *******************************************************************************/
-
-package org.eclipse.wst.ws.internal.common;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.codegen.merge.java.JControlModel;
-import org.eclipse.emf.codegen.merge.java.JMerger;
-import org.eclipse.emf.codegen.merge.java.facade.FacadeHelper;
-import org.eclipse.emf.codegen.util.CodeGenUtil;
-import org.eclipse.wst.ws.internal.plugin.WSPlugin;
-import org.eclipse.wst.ws.internal.preferences.PersistentMergeContext;
-import org.osgi.framework.Bundle;
-
-public class MergeUtils {
- private static Hashtable MergeModel;
- private static final String WST_WS = "org.eclipse.wst.ws";
- private static final String MERGE_XML = "merge.xml";
- private static final String JMERGER = "jmerger";
- private static JControlModel jMergeControlModel = null;
-
-
- /**
- * Stores the JMerge model of the file represented by the URL strings
- * @param urlStrings String representation of the URL for the file
- */
- static public void storeMergeModels (String [] urlStrings) {
- if (urlStrings != null) {
- PersistentMergeContext mergeContext = WSPlugin.getInstance().getMergeContext();
- if (mergeContext.isSkeletonMergeEnabled()) {
- initialize();
- if (jMergeControlModel != null) {
- MergeModel = new Hashtable();
- String filename;
- for (int i = 0; i < urlStrings.length; i++) {
- filename = getFileFromURL(urlStrings[i]);
- if (filename != null) {
- storeModel(filename);
- }
- }
- }
- }
- }
- }
-
- /**
- * Stores the JMerge model of the file using the filename as key
- * @param filename String representation of the file
- */
- static public void storeModel (String filename) {
- InputStream inStream = null;
- JMerger jMerger;
- File aFile;
- try {
- if (jMergeControlModel != null) {
- aFile = new File (filename);
- if (aFile.exists()) {
- inStream = new FileInputStream(aFile);
- jMerger = new JMerger(jMergeControlModel);
- jMerger.setTargetCompilationUnit(jMerger.createCompilationUnitForInputStream(inStream));
- MergeModel.put(filename, jMerger);
- }
- }
- } catch (FileNotFoundException e) {
- // File not found, just ignore. Nothing to merge.
- } finally {
- if (inStream != null) {
- try {
- inStream.close();
- } catch (IOException e) {
- }
- }
- }
-
- }
-
- /**
- * Initializes the JMerge model
- * File merge.xml in WebServicePlugin contains the rules for the merge.
- * If the merge.xml file is not found, jMergeControlModel is leave as null.
- */
- static private void initialize() {
- if (jMergeControlModel == null) {
- FacadeHelper facadeHelper = CodeGenUtil.instantiateFacadeHelper(JMerger.DEFAULT_FACADE_HELPER_CLASS);
- jMergeControlModel = new JControlModel();
-
- Bundle wsBundle = Platform.getBundle(WST_WS);
- IPath mergePath = new Path( JMERGER ).append( MERGE_XML );
- URL fileURL = FileLocator.find( wsBundle, mergePath, null);
- jMergeControlModel.initialize(facadeHelper, fileURL.toString());
- }
- return;
- }
-
- /**
- * Look up the model of this file stored earlier using the filename as key.
- * Merge the content of this file with the earlier model.
- * Returns the string representation of the merged content.
- * Returns null if an earlier model for this file does not exist or if the new file does not exist.
- * @param filename
- * @return merge content
- */
- static public String mergeFile(String filename) {
- JMerger jMerger = (JMerger) MergeModel.get(filename);
- String mergedContent = null;
- if (jMerger != null) {
- // a JMerger model of the file exists, merge the contents
- InputStream inStream = null;
- try {
- inStream = new FileInputStream(new File (filename));
- jMerger.setSourceCompilationUnit(jMerger.createCompilationUnitForInputStream(inStream));
- jMerger.merge();
- mergedContent = jMerger.getTargetCompilationUnitContents();
- } catch (FileNotFoundException e) {
- // File not found, just ignore. Nothing to merge.
- } finally {
- try {
- if (inStream != null) {
- inStream.close();
- }
- } catch (IOException e) {
- }
- }
- }
- return mergedContent;
- }
-
- /**
- * Gets the file name of this URL
- * @param urlString string representation of the URL
- * @return file name string
- */
- static public String getFileFromURL(String urlString) {
- String fileString = null;
- try {
- URL url = new URL (urlString);
- fileString = url.getFile();
- } catch (MalformedURLException e) {
- }
- return fileString;
- }
-
-}

Back to the top