Skip to content

Commit

Permalink
#212 Format code
Browse files Browse the repository at this point in the history
  • Loading branch information
etraisnel2 authored and pdulth committed Mar 23, 2023
1 parent 5406a16 commit 6447175
Show file tree
Hide file tree
Showing 2 changed files with 353 additions and 379 deletions.
Expand Up @@ -44,6 +44,7 @@
import org.polarsys.capella.core.commandline.core.DefaultCommandLine;
import org.polarsys.capella.core.data.capellamodeller.Project;
import org.polarsys.capella.core.sirius.ui.helper.SessionHelper;
import org.polarsys.kitalpha.doc.gen.business.core.exceptions.DocgenRuntimeException;
import org.polarsys.kitalpha.doc.gen.business.core.sirius.util.session.DiagramSessionHelper;
import org.polarsys.kitalpha.doc.gen.business.core.ui.helper.InvokeActivityHelper;

Expand All @@ -52,60 +53,61 @@
*/
public class HTMLCommandLine extends DefaultCommandLine {

private static final String FCORE_URI = "/org.polarsys.capella.docgen.ui/egf/capellalauncher.fcore#_zup7kAkdEeCBJtEcjZDVOA"; //$NON-NLS-1$
private static final URI CAPELLA_LAUNCHER_URI = URI.createURI("platform:/plugin" + FCORE_URI); //$NON-NLS-1$

/**
*
*/
public HTMLCommandLine() {
super();
}

@Override
public void printHelp() {
System.out.println("*** Capella HTML Command Line"); //$NON-NLS-1$
super.printHelp();
}

/**
* {@inheritDoc}
*/
@Override
public void checkArgs(IApplicationContext context_p) throws CommandLineException {
super.checkArgs(context_p);
}

/**
* {@inheritDoc}
*/
@Override
public boolean execute(IApplicationContext context_p) {

startFakeWorkbench();

// load the AIRD
List<IFile> airdFilesFromInput = getAirdFilesFromInput();
private static final String FCORE_URI = "/org.polarsys.capella.docgen.ui/egf/capellalauncher.fcore#_zup7kAkdEeCBJtEcjZDVOA"; //$NON-NLS-1$

private static final URI CAPELLA_LAUNCHER_URI = URI.createURI("platform:/plugin" + FCORE_URI); //$NON-NLS-1$

/**
*
*/
public HTMLCommandLine() {
super();
}

@Override
public void printHelp() {
System.out.println("*** Capella HTML Command Line"); //$NON-NLS-1$
super.printHelp();
}

/**
* {@inheritDoc}
*/
@Override
public void checkArgs(IApplicationContext context_p) throws CommandLineException {
super.checkArgs(context_p);
}

/**
* {@inheritDoc}
*/
@Override
public boolean execute(IApplicationContext context_p) {

startFakeWorkbench();

// load the AIRD
List<IFile> airdFilesFromInput = getAirdFilesFromInput();
boolean status = true;
if (!airdFilesFromInput.isEmpty()) {
URI uri = EcoreUtil2.getURI(airdFilesFromInput.get(0));
// init the EGF activity
Activity htmlGenerator = InvokeActivityHelper.getActivity(CAPELLA_LAUNCHER_URI);
URI semanticResourceURI = uri;
if (uri.lastSegment().endsWith(".aird")) {//$NON-NLS-1$
DiagramSessionHelper.setAirdUri(uri);
Session session = DiagramSessionHelper.initSession();
session.open(new NullProgressMonitor());
Project rootSemanticElement = SessionHelper.getCapellaProject(session);
if (rootSemanticElement != null) {
Resource semanticResource = rootSemanticElement.eResource();
semanticResourceURI = semanticResource.getURI();
if (!airdFilesFromInput.isEmpty()) {
URI uri = EcoreUtil2.getURI(airdFilesFromInput.get(0));
// init the EGF activity
Activity htmlGenerator = InvokeActivityHelper.getActivity(CAPELLA_LAUNCHER_URI);

URI semanticResourceURI = uri;

if (uri.lastSegment().endsWith(".aird")) {//$NON-NLS-1$

DiagramSessionHelper.setAirdUri(uri);
Session session = DiagramSessionHelper.initSession();

session.open(new NullProgressMonitor());

Project rootSemanticElement = SessionHelper.getCapellaProject(session);
if (rootSemanticElement != null) {
Resource semanticResource = rootSemanticElement.eResource();
semanticResourceURI = semanticResource.getURI();

try {
String outputFolderString = getOrCreateOutputFolder().getFullPath().toString();
status = executeEGFActivity(htmlGenerator, outputFolderString, semanticResourceURI);
Expand All @@ -116,123 +118,109 @@ public boolean execute(IApplicationContext context_p) {
status = false;
logError(e.getMessage());
}
} else {
status = false;
logError(Messages.no_root_semantic_element);
}
} else {
status = false;
logError(Messages.filepath_point_to_aird);
}
}

return status;
}

/**
* {@inheritDoc}
*
* @throws CommandLineException
*/
@Override
public void prepare(IApplicationContext context_p) throws CommandLineException {
super.prepare(context_p);
}

public static void startFakeWorkbench() {
Display display = PlatformUI.createDisplay();
PlatformUI.createAndRunWorkbench(display, new WorkbenchAdvisor() {

/**
* {@inheritDoc}
*/
@Override
public boolean openWindows() {
return false;
}

@Override
public String getInitialWindowPerspectiveId() {
return null;
}
});
}

private boolean executeEGFActivity(Activity capellaLauncher, final String outputFolder, final URI uri) {

boolean success = false;
String prefix = Messages.exec_pb;

// create output folder in the project
IPath path = new Path(outputFolder);
IFolder folder = ResourcesPlugin.getWorkspace().getRoot().getFolder(path.append("output")); //$NON-NLS-1$
if (!folder.exists()) {
try {
folder.create(true, true, new NullProgressMonitor());
} catch (CoreException e) {
StringBuilder message = new StringBuilder(prefix).append(e.getMessage());
logError(message.toString());
return false;
}
}

if (capellaLauncher instanceof FactoryComponent) {
String relativeFilePath = getRelativeFilePath(outputFolder);
String projectName = getProjectName(outputFolder);

final FactoryComponent factoryComponent = (FactoryComponent) capellaLauncher;
setContract(factoryComponent, "projectName", projectName); //$NON-NLS-1$
setContract(factoryComponent, "outputFolder", relativeFilePath + "/output"); //$NON-NLS-1$ //$NON-NLS-2$
setDomain(factoryComponent, uri);

// run the activity
try {
InvokeActivityHelper.invokeOutOfUIThread(factoryComponent);
success = true;

} catch (MissingExtensionException e) {
StringBuilder message = new StringBuilder(prefix).append(e.getMessage());
logError(message.toString());
return false;

} catch (InvocationException e) {
StringBuilder message = new StringBuilder(prefix).append(e.getMessage());
logError(message.toString());
return false;

} catch (CoreException e) {
StringBuilder message = new StringBuilder(prefix).append(e.getMessage());
logError(message.toString());
return false;
}

} else {
success = false;
}
return success;
}

private void setDomain(FactoryComponent factoryComponent, URI uri) {
Viewpoint viewpoint = factoryComponent.getViewpointContainer().getViewpoint(DomainViewpoint.class);
if (viewpoint instanceof DomainViewpoint) {
DomainViewpoint domainViewpoint = (DomainViewpoint) viewpoint;
Domain domain = domainViewpoint.getDomains().get(0);
if (domain instanceof EMFDomain) {
EMFDomain domainURI = (EMFDomain) domain;
domainURI.setUri(uri);
}
}
}

private void setContract(FactoryComponent factoryComponent, String contractName, String value) {
Contract invokedContract = factoryComponent.getContract(contractName);

Type type = invokedContract.getType();
if (type instanceof TypeString) {
TypeString typeString = (TypeString) type;
typeString.setValue(value);
}

}
} else {
status = false;
logError(Messages.no_root_semantic_element);
}
} else {
status = false;
logError(Messages.filepath_point_to_aird);
}
}

return status;
}

/**
* {@inheritDoc}
*
* @throws CommandLineException
*/
@Override
public void prepare(IApplicationContext context_p) throws CommandLineException {
super.prepare(context_p);
}

public static void startFakeWorkbench() {
Display display = PlatformUI.createDisplay();
PlatformUI.createAndRunWorkbench(display, new WorkbenchAdvisor() {

/**
* {@inheritDoc}
*/
@Override
public boolean openWindows() {
return false;
}

@Override
public String getInitialWindowPerspectiveId() {
return null;
}
});
}

private boolean executeEGFActivity(Activity capellaLauncher, final String outputFolder, final URI uri) {

boolean success = true;
String prefix = Messages.exec_pb;

// create output folder in the project
IPath path = new Path(outputFolder);
IFolder folder = ResourcesPlugin.getWorkspace().getRoot().getFolder(path.append("output")); //$NON-NLS-1$
if (!folder.exists()) {
try {
folder.create(true, true, new NullProgressMonitor());
} catch (CoreException e) {
StringBuilder message = new StringBuilder(prefix).append(e.getMessage());
logError(message.toString());
success = false;
}
}

if (success && capellaLauncher instanceof FactoryComponent) {
String relativeFilePath = getRelativeFilePath(outputFolder);
String projectName = getProjectName(outputFolder);

final FactoryComponent factoryComponent = (FactoryComponent) capellaLauncher;
setContract(factoryComponent, "projectName", projectName); //$NON-NLS-1$
setContract(factoryComponent, "outputFolder", relativeFilePath + "/output"); //$NON-NLS-1$ //$NON-NLS-2$
setDomain(factoryComponent, uri);

// run the activity
try {
InvokeActivityHelper.invokeOutOfUIThread(factoryComponent);
success = true;
} catch (DocgenRuntimeException | MissingExtensionException | InvocationException | CoreException e) {
StringBuilder message = new StringBuilder(prefix).append(e.getMessage());
logError(message.toString());
success = false;
}
}
return success;
}

private void setDomain(FactoryComponent factoryComponent, URI uri) {
Viewpoint viewpoint = factoryComponent.getViewpointContainer().getViewpoint(DomainViewpoint.class);
if (viewpoint instanceof DomainViewpoint) {
DomainViewpoint domainViewpoint = (DomainViewpoint) viewpoint;
Domain domain = domainViewpoint.getDomains().get(0);
if (domain instanceof EMFDomain) {
EMFDomain domainURI = (EMFDomain) domain;
domainURI.setUri(uri);
}
}
}

private void setContract(FactoryComponent factoryComponent, String contractName, String value) {
Contract invokedContract = factoryComponent.getContract(contractName);

Type type = invokedContract.getType();
if (type instanceof TypeString) {
TypeString typeString = (TypeString) type;
typeString.setValue(value);
}

}

}

0 comments on commit 6447175

Please sign in to comment.