001: /*
002: * Enhydra Java Application Server Project
003: *
004: * The contents of this file are subject to the Enhydra Public License
005: * Version 1.1 (the "License"); you may not use this file except in
006: * compliance with the License. You may obtain a copy of the License on
007: * the Enhydra web site ( http://www.enhydra.org/ ).
008: *
009: * Software distributed under the License is distributed on an "AS IS"
010: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
011: * the License for the specific terms governing rights and limitations
012: * under the License.
013: *
014: * The Initial Developer of the Enhydra Application Server is Lutris
015: * Technologies, Inc. The Enhydra Application Server and portions created
016: * by Lutris Technologies, Inc. are Copyright Lutris Technologies, Inc.
017: * All Rights Reserved.
018: *
019: * Contributor(s):
020: *
021: */
022: package org.enhydra.kelp.common.node;
023:
024: // Kelp imports
025: import org.enhydra.kelp.common.importer.ImportTool;
026: import org.enhydra.kelp.common.importer.ImportPaths;
027:
028: // Standard imports
029: import java.io.File;
030:
031: /**
032: * Interface declaration
033: *
034: *
035: * @author Paul Mahar
036: */
037: public abstract class OtterNodeFactory {
038:
039: /**
040: * Method declaration
041: *
042: *
043: * @param node
044: * @param name
045: *
046: * @return
047: *
048: */
049: abstract public OtterFolderNode createFolderNode(OtterNode node,
050: String name);
051:
052: /**
053: * Method declaration
054: *
055: *
056: * @param node
057: * @param file
058: *
059: * @return
060: */
061: abstract public OtterDocumentNode createDocumentNode(
062: OtterNode node, String file);
063:
064: /**
065: * Method declaration
066: *
067: *
068: * @param node
069: * @param file
070: *
071: * @return
072: */
073: abstract public OtterImageFileNode createImageFileNode(
074: OtterNode node, String file);
075:
076: /**
077: * Method declaration
078: *
079: *
080: * @param node
081: * @param file
082: *
083: * @return
084: */
085: abstract public OtterJavaFileNode createJavaFileNode(
086: OtterNode node, String file);
087:
088: /**
089: * Method declaration
090: *
091: *
092: * @param node
093: * @param file
094: *
095: * @return
096: */
097: abstract public OtterTextFileNode createTextFileNode(
098: OtterNode node, String file);
099:
100: /**
101: * Method declaration
102: *
103: *
104: * @param node
105: * @param file
106: *
107: * @return
108: */
109: abstract public OtterTemplateNode createTemplateNode(
110: OtterNode node, String file);
111:
112: abstract public OtterTemplateNode getTemplateNode(OtterNode node);
113:
114: /**
115: * Method declaration
116: *
117: *
118: * @param project
119: * @param node
120: * @param file
121: *
122: * @return
123: */
124: abstract public OtterJavaFileNode[] replaceGeneratedSource(
125: OtterProject project, OtterNode node, String[] files);
126:
127: //
128: //
129: public void importFile(OtterProject project, File newFile) {
130: File source = null;
131: File[] files = new File[1];
132: ImportPaths paths = null;
133: ImportTool tool = null;
134:
135: files[0] = newFile;
136: source = new File(project.getSourcePathArray()[0]);
137: if (!source.exists()) {
138: source = new File(project.getRootPath());
139: }
140: paths = new ImportPaths();
141: tool = new ImportTool();
142: try {
143: paths.setSourcePath(source.getAbsolutePath());
144: } catch (Exception e) {
145: e.printStackTrace();
146: }
147: paths.setDeployRootPath(project.getDeployRootPath());
148: paths.setProject(project);
149: tool.setPaths(paths);
150: tool.addFiles(files);
151: }
152:
153: }
|