You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.1 KiB
55 lines
2.1 KiB
package com.fr.nx.app.designer.utils; |
|
|
|
import com.fr.design.mainframe.JTemplate; |
|
import com.fr.file.FILE; |
|
import com.fr.file.filetree.FileNode; |
|
import com.fr.general.ComparatorUtils; |
|
import com.fr.log.FineLoggerFactory; |
|
import com.fr.main.impl.WorkBook; |
|
import com.fr.nx.app.designer.toolbar.TemplateTransformer; |
|
import com.fr.nx.app.designer.toolbar.TransformResult; |
|
import com.fr.nx.app.designer.toolbar.TransformResultInfo; |
|
import com.fr.workspace.WorkContext; |
|
|
|
import java.io.InputStream; |
|
|
|
import static com.fr.base.extension.FileExtension.CPT; |
|
import static com.fr.base.extension.FileExtension.CPTX; |
|
|
|
/** |
|
* Created by kerry on 2019-12-04 |
|
*/ |
|
public class CompileTransformUtil { |
|
|
|
|
|
public static TransformResultInfo compileFile(FileNode fileNode) { |
|
long start = System.currentTimeMillis(); |
|
InputStream in = WorkContext.getWorkResource().openStream(fileNode.getEnvPath()); |
|
WorkBook workBook = new WorkBook(); |
|
TransformResultInfo result = null; |
|
try { |
|
workBook.readStream(in); |
|
FILE file = TemplateTransformer.createOutputFile(fileNode.getEnvPath(), CPT.getSuffix(), CPTX.getSuffix()); |
|
result = TemplateTransformer.compileCPTX(workBook, file); |
|
} catch (Exception ignore) { |
|
result = TransformResultInfo.generateResult(TransformResult.FAILED); |
|
} |
|
long end = System.currentTimeMillis(); |
|
FineLoggerFactory.getLogger().debug(fileNode.getName() + " compile cost : " + (end - start) +" ms "); |
|
return result; |
|
} |
|
|
|
|
|
public static FILE getTargetFile(JTemplate jTemplate, TemplateTransformer transformer) { |
|
FILE file = null; |
|
if (ComparatorUtils.equals(TemplateTransformer.TO_CPTX, transformer)) { |
|
file = TemplateTransformer.createOutputFile(jTemplate.getEditingFILE().getPath(), |
|
CPT.getSuffix(), CPTX.getSuffix()); |
|
|
|
} else if (ComparatorUtils.equals(TemplateTransformer.TO_CPT, transformer)) { |
|
file = TemplateTransformer.createOutputFile(jTemplate.getEditingFILE().getPath(), |
|
CPTX.getSuffix(), CPT.getSuffix()); |
|
} |
|
return file; |
|
} |
|
}
|
|
|