use of com.twinsoft.convertigo.beans.connectors.SiteClipperConnector in project convertigo by convertigo.
the class NewProjectWizard method createFromBlankProject.
private Project createFromBlankProject(IProgressMonitor monitor, boolean updateTreeView) throws Exception {
String newProjectName = projectName;
String oldProjectName = projectUrlParser.getProjectName();
monitor.setTaskName("Creating new project");
monitor.worked(1);
if (Engine.theApp.databaseObjectsManager.existsProject(newProjectName)) {
throw new EngineException("Unable to create new project ! A project with the same name (\"" + newProjectName + "\") already exists.");
}
monitor.setTaskName("Loading the projet");
monitor.worked(1);
projectUrlParser.setProjectName(projectName);
Project newProject = Engine.theApp.referencedProjectManager.importProject(projectUrlParser, true);
monitor.worked(1);
try {
// set values of elements to configure on the new project
String newEmulatorTechnology = "";
String emulatorTechnologyName = "";
String newIbmTerminalType = "";
switch(wizardId) {
case "com.twinsoft.convertigo.eclipse.wizards.New3270ConnectorWizard":
case "com.twinsoft.convertigo.eclipse.wizards.New3270WebWizard":
newEmulatorTechnology = Session.SNA;
newIbmTerminalType = "IBM-3279";
emulatorTechnologyName = "IBM3270";
break;
case "com.twinsoft.convertigo.eclipse.wizards.New5250ConnectorWizard":
case "com.twinsoft.convertigo.eclipse.wizards.New5250WebWizard":
newEmulatorTechnology = Session.AS400;
newIbmTerminalType = "IBM-3179";
emulatorTechnologyName = "IBM5250";
break;
case "com.twinsoft.convertigo.eclipse.wizards.NewDKUConnectorWizard":
case "com.twinsoft.convertigo.eclipse.wizards.NewDKUWebWizard":
newEmulatorTechnology = Session.DKU;
emulatorTechnologyName = "BullDKU7107";
break;
case "com.twinsoft.convertigo.eclipse.wizards.NewVT220ConnectorWizard":
newEmulatorTechnology = Session.VT;
emulatorTechnologyName = "UnixVT220";
break;
}
monitor.setTaskName("Reset project version");
monitor.worked(1);
newProject.setVersion("");
monitor.setTaskName("Change connector name");
monitor.worked(1);
String oldConnectorName = "void";
String newConnectorName = "void";
boolean connectorChanged = false;
if (page2 != null) {
newConnectorName = page2.getConnectorName();
monitor.setTaskName("Connector renamed");
monitor.worked(1);
oldConnectorName = newProject.getDefaultConnector().getName();
newProject.getDefaultConnector().setName(newConnectorName);
connectorChanged = true;
}
if (page5 != null) {
CicsConnector cicsConnector = (CicsConnector) newProject.getDefaultConnector();
monitor.setTaskName("Update connector mainframe name");
monitor.worked(1);
cicsConnector.setMainframeName(page5.getCtgName());
monitor.setTaskName("Update connector server");
monitor.worked(1);
cicsConnector.setServer(page5.getCtgServer());
monitor.setTaskName("Update connector port");
monitor.worked(1);
try {
cicsConnector.setPort(Integer.parseInt(page5.getCtgPort()));
} catch (Exception e) {
}
}
if (page6 != null) {
monitor.setTaskName("Update connector server");
monitor.worked(1);
// change connector server and port,
// change https mode
// and change proxy server and proxy port
HttpConnector httpConnector = (HttpConnector) newProject.getDefaultConnector();
httpConnector.setServer(page6.getHttpServer());
monitor.setTaskName("Update connector port");
monitor.worked(1);
try {
httpConnector.setPort(Integer.parseInt(page6.getHttpPort()));
} catch (Exception e) {
}
monitor.setTaskName("Update connector https mode");
monitor.worked(1);
httpConnector.setHttps(page6.isBSSL());
}
if (page7 != null) {
// change emulator technology
// and change service code
monitor.setTaskName("Set connector service code");
monitor.worked(1);
JavelinConnector javelinConnector = (JavelinConnector) newProject.getDefaultConnector();
javelinConnector.setServiceCode(page7.getServiceCode());
monitor.setTaskName("Set connector emulator technology");
monitor.worked(1);
javelinConnector.setEmulatorTechnology(newEmulatorTechnology);
monitor.setTaskName("Set terminal type");
monitor.worked(1);
javelinConnector.setIbmTerminalType(newIbmTerminalType);
// rename emulatorTechnology criteria
monitor.setTaskName("Rename emulator technology criteria");
monitor.worked(1);
javelinConnector.getDefaultScreenClass().getLocalCriterias().get(0).setName(emulatorTechnologyName);
}
if (page11 != null) {
SiteClipperConnector scConnector = (SiteClipperConnector) newProject.getDefaultConnector();
monitor.setTaskName("Update connector certificates policy");
monitor.worked(1);
scConnector.setTrustAllServerCertificates(page11.isTrustAllServerCertificates());
monitor.setTaskName("Update host url");
monitor.worked(1);
scConnector.getDefaultTransaction().setTargetURL(page11.getTargetURL());
}
if (configureSQLConnectorPage != null) {
SqlConnector sqlConnector = (SqlConnector) newProject.getDefaultConnector();
monitor.setTaskName("Update JDBC URL");
monitor.worked(1);
sqlConnector.setJdbcURL(configureSQLConnectorPage.getJdbcURL());
monitor.setTaskName("Update JDBC driver");
monitor.worked(1);
sqlConnector.setJdbcDriverClassName(configureSQLConnectorPage.getJdbcDriver());
monitor.setTaskName("Update Username");
monitor.worked(1);
sqlConnector.setJdbcUserName(configureSQLConnectorPage.getUsername());
monitor.setTaskName("Update Password");
monitor.worked(1);
sqlConnector.setJdbcUserPassword(configureSQLConnectorPage.getPassword());
}
if (configureSAPConnectorPage != null) {
SapJcoConnector sapConnector = (SapJcoConnector) newProject.getDefaultConnector();
// Application Server Host
monitor.setTaskName("Update application Server Host");
monitor.worked(1);
sapConnector.setAsHost(configureSAPConnectorPage.getAsHost());
// System Number
monitor.setTaskName("Update system number");
monitor.worked(1);
sapConnector.setSystemNumber(configureSAPConnectorPage.getSystemNumber());
// Client
monitor.setTaskName("Update client");
monitor.worked(1);
sapConnector.setClient(configureSAPConnectorPage.getClient());
// User
monitor.setTaskName("Update user");
monitor.worked(1);
sapConnector.setUser(configureSAPConnectorPage.getUser());
// Password
monitor.setTaskName("Update password");
monitor.worked(1);
sapConnector.setPassword(configureSAPConnectorPage.getPassword());
// Language
monitor.setTaskName("Update language");
monitor.worked(1);
sapConnector.setLanguage(configureSAPConnectorPage.getLanguage());
}
monitor.setTaskName("Saving updated project");
monitor.worked(1);
Engine.theApp.databaseObjectsManager.exportProject(newProject);
monitor.setTaskName("New project saved");
monitor.worked(1);
try {
File eProject = new File(newProject.getDirPath(), ".project");
if (eProject.exists()) {
String txt = FileUtils.readFileToString(eProject, StandardCharsets.UTF_8);
txt = txt.replaceFirst("(<name>)(.*?)(</name>)", "$1" + newProjectName + "$3");
FileUtils.writeStringToFile(eProject, txt, StandardCharsets.UTF_8);
}
String xsdInternalPath = newProject.getDirPath() + "/" + Project.XSD_FOLDER_NAME + "/" + Project.XSD_INTERNAL_FOLDER_NAME;
File xsdInternalDir = new File(xsdInternalPath).getCanonicalFile();
if (xsdInternalDir.exists() && connectorChanged) {
boolean needConnectorRename = !oldConnectorName.equals(newConnectorName);
if (needConnectorRename) {
File srcDir = new File(xsdInternalDir, oldConnectorName);
File destDir = new File(xsdInternalDir, newConnectorName);
if (oldConnectorName.equalsIgnoreCase(newConnectorName)) {
File destDirTmp = new File(xsdInternalDir, "tmp" + oldConnectorName).getCanonicalFile();
FileUtils.moveDirectory(srcDir, destDirTmp);
srcDir = destDirTmp;
}
FileUtils.moveDirectory(srcDir, destDir);
}
for (File connectorDir : xsdInternalDir.listFiles()) {
if (connectorDir.isDirectory()) {
String connectorName = connectorDir.getName();
for (File transactionXsdFile : connectorDir.listFiles()) {
String xsdFilePath = transactionXsdFile.getCanonicalPath();
ProjectUtils.xsdRenameProject(xsdFilePath, oldProjectName, newProjectName);
if (needConnectorRename && connectorName.equals(newConnectorName)) {
ProjectUtils.xsdRenameConnector(xsdFilePath, oldConnectorName, newConnectorName);
}
}
}
}
}
monitor.setTaskName("Schemas updated");
monitor.worked(1);
if (updateTreeView) {
updateProjectTreeView();
}
} catch (Exception e) {
Engine.logDatabaseObjectManager.error("An error occured while updating transaction schemas", e);
}
} catch (Exception e) {
// Delete everything
try {
Engine.logBeans.error("An error occured while creating project, everything will be deleted. Please see Studio logs for more informations.", null);
// TODO : see if we can delete oldProjectName : a real project
// could exist with this oldProjectName ?
// Engine.theApp.databaseObjectsManager.deleteProject(oldProjectName,
// false, false);
Engine.theApp.databaseObjectsManager.deleteProject(newProjectName, false, false);
projectName = null;
} catch (Exception ex) {
}
throw new Exception("Unable to create project from template", e);
}
return newProject;
}
use of com.twinsoft.convertigo.beans.connectors.SiteClipperConnector in project convertigo by convertigo.
the class ContinueWithSiteClipperStatement method getSiteClippersConnectorNames.
public static String[] getSiteClippersConnectorNames(Project projectLoaded) {
List<String> connectorList = new ArrayList<String>();
connectorList.add("");
for (Connector connector : projectLoaded.getConnectorsList()) {
if (connector instanceof SiteClipperConnector) {
connectorList.add(connector.getName());
}
}
return connectorList.toArray(new String[connectorList.size()]);
}
use of com.twinsoft.convertigo.beans.connectors.SiteClipperConnector in project convertigo by convertigo.
the class ContinueWithSiteClipperStatement method execute.
@Override
public boolean execute(Context javascriptContext, Scriptable scope) throws EngineException {
if (isEnabled()) {
if (siteClipperConnectorName.equals("")) {
throw new EngineException("You didn't choose a Site Clipper connector for redirection.");
}
Connector siteClipperConnector = getProject().getConnectorByName(siteClipperConnectorName);
com.twinsoft.convertigo.engine.Context context = getParentTransaction().context;
String targetURL = getConnector().getHtmlParser().getReferer(context);
String location = SiteClipperConnector.constructSiteLocation(context, siteClipperConnector, targetURL);
getConnector().context.outputDocument.getDocumentElement().setAttribute("redirect_location", location);
ReturnStatement.returnLoop(this.parent, "skip");
context.setSharedScope(RhinoUtils.copyScope(javascriptContext, scope));
context.stopXulRecording();
}
return isEnabled();
}
use of com.twinsoft.convertigo.beans.connectors.SiteClipperConnector in project convertigo by convertigo.
the class ProjectUtils method getStatByProject.
public static Map<String, String> getStatByProject(Project project) throws Exception {
final Map<String, String> result = new HashMap<String, String>();
try {
if (project != null) {
try {
new WalkHelper() {
String displayString = "";
@SuppressWarnings("unused")
int depth = 0;
int sequenceJavascriptLines;
int sequenceJavascriptFunction;
int connectorCount = 0;
int httpConnectorCount = 0;
int httpsConnectorCount = 0;
int htmlConnectorCount = 0;
int cicsConnectorCount = 0;
int siteClipperConnectorCount = 0;
int sqlConnectorCount = 0;
int javelinConnectorCount = 0;
int htmlScreenclassCount = 0;
int htmlCriteriaCount = 0;
int siteClipperScreenclassCount = 0;
int siteClipperCriteriaCount = 0;
int htmlExtractionRuleCount = 0;
int htmlTransactionVariableCount = 0;
int sqlTransactionVariableCount = 0;
int javelinTransactionVariableCount = 0;
int javelinScreenclassCount = 0;
int javelinCriteriaCount = 0;
int javelinExtractionRuleCount = 0;
int javelinEntryHandlerCount = 0;
int javelinExitHandlerCount = 0;
int javelinHandlerCount = 0;
int javelinJavascriptLines = 0;
int statementCount = 0;
int poolCount = 0;
int handlerstatementCount = 0;
@SuppressWarnings("unused")
int reqVariableCount = 0;
int sequenceVariableCount = 0;
@SuppressWarnings("unused")
int transactionVariableCount = 0;
int testcaseVariableCount = 0;
int testcaseCount = 0;
int sequenceCount = 0;
int stepCount = 0;
int sheetCount = 0;
int referenceCount = 0;
int selectInQueryCount = 0;
/*
* transaction counters
*/
@SuppressWarnings("unused")
int transactionCount = 0;
@SuppressWarnings("unused")
int transactionWithVariablesCount = 0;
int htmltransactionCount = 0;
int httpTransactionCount = 0;
int httpsTransactionCount = 0;
int xmlHttpTransactionCount = 0;
int xmlHttpsTransactionCount = 0;
int jsonHttpTransactionCount = 0;
int jsonHttpsTransactionCount = 0;
int proxyTransactionCount = 0;
int siteClipperTransactionCount = 0;
int javelinTransactionCount = 0;
int sqlTransactionCount = 0;
int totalC8oObjects = 0;
public void go(DatabaseObject project) {
try {
String projectName = project.getName();
init(project);
connectorCount = htmlConnectorCount + httpConnectorCount + httpsConnectorCount + cicsConnectorCount + siteClipperConnectorCount + sqlConnectorCount + javelinConnectorCount;
totalC8oObjects = 1 + // connectors
connectorCount + htmlScreenclassCount + htmlCriteriaCount + htmlExtractionRuleCount + htmlTransactionVariableCount + handlerstatementCount + statementCount + javelinScreenclassCount + javelinCriteriaCount + javelinExtractionRuleCount + javelinTransactionCount + javelinEntryHandlerCount + javelinExitHandlerCount + javelinHandlerCount + javelinTransactionVariableCount + sqlTransactionCount + sqlTransactionVariableCount + sheetCount + jsonHttpTransactionCount + jsonHttpsTransactionCount + xmlHttpTransactionCount + xmlHttpsTransactionCount + httpTransactionCount + httpsTransactionCount + proxyTransactionCount + siteClipperTransactionCount + siteClipperScreenclassCount + siteClipperCriteriaCount + sequenceCount + stepCount + sequenceVariableCount + sequenceJavascriptFunction + poolCount + referenceCount + testcaseCount + testcaseVariableCount;
displayString = // ok
totalC8oObjects + " object(s)<br/>" + connectorCount + // ok
" connector(s)";
result.put(projectName, displayString);
if (htmltransactionCount > 0) {
displayString = // ok
(htmlScreenclassCount > 0 ? " screenclassCount = " + htmlScreenclassCount + "<br/>" : "") + (htmlCriteriaCount > 0 ? " criteriaCount = " + htmlCriteriaCount + "<br/>" : "") + (htmlExtractionRuleCount > 0 ? " extractionRuleCount = " + htmlExtractionRuleCount + "<br/>" : "") + " transactionCount = " + htmltransactionCount + // ok
"<br/>" + (htmlTransactionVariableCount > 0 ? " transactionVariableCount = " + htmlTransactionVariableCount + "<br/>" : "") + " statementCount (handlers=" + handlerstatementCount + ", statements=" + statementCount + ", total=" + (int) (handlerstatementCount + statementCount) + ")";
result.put("HTML connector", displayString);
}
/*
* javelin connector
*/
if (javelinScreenclassCount > 0) {
displayString = // ok
" screenclassCount = " + javelinScreenclassCount + "<br/>" + (javelinCriteriaCount > 0 ? " criteriaCount = " + javelinCriteriaCount + "<br/>" : "") + (javelinExtractionRuleCount > 0 ? " extractionRuleCount = " + javelinExtractionRuleCount + "<br/>" : "") + // ok
(javelinTransactionCount > 0 ? " transactionCount = " + javelinTransactionCount + "<br/>" : "") + " handlerCount (Entry = " + javelinEntryHandlerCount + ", Exit = " + javelinExitHandlerCount + ", Screenclass = " + javelinHandlerCount + "), total = " + (int) (javelinEntryHandlerCount + javelinExitHandlerCount + javelinHandlerCount) + " in " + javelinJavascriptLines + " lines<br/>" + (javelinTransactionVariableCount > 0 ? " variableCount = " + javelinTransactionVariableCount : "");
result.put("Javelin connector", displayString);
}
/*
* SQL connector
*/
if (sqlTransactionCount > 0) {
displayString = // ok
" sqltransactionCount = " + sqlTransactionCount + "<br/>" + // ok
(selectInQueryCount > 0 ? " selectInQueryCount = " + selectInQueryCount + "<br/>" : "") + (sqlTransactionVariableCount > 0 ? " transactionVariableCount = " + sqlTransactionVariableCount : "");
if (sheetCount > 0) {
displayString += "<br/>Sheets<br/>" + " sheetCount = " + sheetCount;
}
result.put("SQL connector", displayString);
}
/*
* Http connector
*/
if (httpConnectorCount > 0) {
displayString = " connectorCount = " + httpConnectorCount + "<br/>";
}
if (jsonHttpTransactionCount > 0) {
displayString += // ok
" JSONTransactionCount = " + jsonHttpTransactionCount + "<br/>" + // ok
(xmlHttpTransactionCount > 0 ? " XmlTransactionCount = " + xmlHttpTransactionCount + "<br/>" : "") + (httpTransactionCount > 0 ? " HTTPtransactionCount = " + httpTransactionCount : "");
result.put("HTTP connector", displayString);
}
/*
* Https connector
*/
if (httpsConnectorCount > 0) {
displayString = " connectorCount = " + httpsConnectorCount + "<br/>" + // ok
(jsonHttpsTransactionCount > 0 ? " JSONTransactionCount = " + jsonHttpsTransactionCount + "<br/>" : "") + // ok
(xmlHttpsTransactionCount > 0 ? " XmlTransactionCount = " + xmlHttpsTransactionCount + "<br/>" : "") + // ok
(httpsTransactionCount > 0 ? " HTTPStransactionCount = " + httpsTransactionCount : "");
result.put("HTTPS connector", displayString);
}
/*
* Proxy connector
*/
if (proxyTransactionCount > 0) {
displayString = " TransactionCount = " + proxyTransactionCount;
result.put("Proxy connector", displayString);
}
/*
* Siteclipper connector
*/
if (siteClipperTransactionCount > 0) {
displayString = // ok
" TransactionCount = " + siteClipperTransactionCount + "<br/>" + // ok
(siteClipperScreenclassCount > 0 ? " screenclassCount = " + siteClipperScreenclassCount + "<br/>" : "") + (siteClipperCriteriaCount > 0 ? " criteriaCount = " + siteClipperCriteriaCount : "");
result.put("SiteClipper connector", displayString);
}
/*
* Sequencer
*/
if (sequenceCount > 0) {
displayString = // ok
" sequenceCount = " + sequenceCount + "<br/>" + // ok
(stepCount > 0 ? " stepCount = " + stepCount + "<br/>" : "") + (sequenceVariableCount > 0 ? " variableCount = " + sequenceVariableCount + "<br/>" : "") + " javascriptCode = " + sequenceJavascriptFunction + " functions in " + sequenceJavascriptLines + " lines" + ((boolean) (sequenceJavascriptFunction == 0) ? " (declarations or so)" : "");
result.put("Sequencer", displayString);
}
if (poolCount > 0) {
displayString = " poolCount = " + poolCount;
result.put("Pools", displayString);
}
if (referenceCount > 0) {
displayString = " referenceCount = " + referenceCount;
result.put("References", displayString);
}
if (testcaseCount > 0) {
displayString = " testcaseCount = " + testcaseCount + "<br/>" + (testcaseVariableCount > 0 ? " testcaseVariableCount = " + testcaseVariableCount : "");
result.put("Test cases", displayString);
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void walk(DatabaseObject databaseObject) throws Exception {
depth++;
// deal with connectors
if (databaseObject instanceof Connector) {
if (databaseObject instanceof HtmlConnector) {
htmlConnectorCount++;
} else if (databaseObject instanceof HttpConnector) {
if (((HttpConnector) databaseObject).isHttps())
httpsConnectorCount++;
else
httpConnectorCount++;
} else if (databaseObject instanceof CicsConnector) {
cicsConnectorCount++;
} else if (databaseObject instanceof SiteClipperConnector) {
siteClipperConnectorCount++;
} else if (databaseObject instanceof SqlConnector) {
sqlConnectorCount++;
} else if (databaseObject instanceof JavelinConnector) {
javelinConnectorCount++;
}
} else // deal with screenclasses
if (databaseObject instanceof ScreenClass) {
if (databaseObject instanceof JavelinScreenClass) {
// deal with javelinScreenClasses
javelinScreenclassCount++;
} else if (databaseObject instanceof SiteClipperScreenClass) {
// deal with siteClipperScreenClasses
siteClipperScreenclassCount++;
} else {
// deal with html ScreenClasses
htmlScreenclassCount++;
}
} else if (databaseObject instanceof Criteria) {
if (databaseObject.getParent() instanceof JavelinScreenClass) {
javelinCriteriaCount++;
} else if (databaseObject.getParent() instanceof SiteClipperScreenClass) {
siteClipperCriteriaCount++;
} else {
htmlCriteriaCount++;
}
} else if (databaseObject instanceof ExtractionRule) {
if (databaseObject.getParent() instanceof JavelinScreenClass) {
javelinExtractionRuleCount++;
} else {
htmlExtractionRuleCount++;
}
} else if (databaseObject instanceof Transaction) {
if (databaseObject instanceof TransactionWithVariables) {
if (databaseObject instanceof HtmlTransaction) {
htmltransactionCount++;
} else if (databaseObject instanceof JsonHttpTransaction) {
if (((HttpConnector) databaseObject.getParent()).isHttps())
jsonHttpsTransactionCount++;
else
jsonHttpTransactionCount++;
} else if (databaseObject instanceof HttpTransaction) {
if (((HttpConnector) databaseObject.getParent()).isHttps())
httpsTransactionCount++;
else
httpTransactionCount++;
} else if (databaseObject instanceof XmlHttpTransaction) {
if (((HttpConnector) databaseObject.getParent()).isHttps())
xmlHttpsTransactionCount++;
else
xmlHttpTransactionCount++;
} else if (databaseObject instanceof ProxyTransaction) {
proxyTransactionCount++;
} else if (databaseObject instanceof SiteClipperTransaction) {
siteClipperTransactionCount++;
} else if (databaseObject instanceof JavelinTransaction) {
JavelinTransaction javelinTransaction = (JavelinTransaction) databaseObject;
// Functions
String line;
int lineNumber = 0;
BufferedReader br = new BufferedReader(new StringReader(javelinTransaction.handlers));
while ((line = br.readLine()) != null) {
line = line.trim();
lineNumber++;
if (line.startsWith("function ")) {
try {
String functionName = line.substring(9, line.indexOf(')') + 1);
if (functionName.endsWith(JavelinTransaction.EVENT_ENTRY_HANDLER + "()")) {
// TYPE_FUNCTION_SCREEN_CLASS_ENTRY
javelinEntryHandlerCount++;
} else if (functionName.endsWith(JavelinTransaction.EVENT_EXIT_HANDLER + "()")) {
// TYPE_FUNCTION_SCREEN_CLASS_EXIT
javelinExitHandlerCount++;
} else {
// TYPE_OTHER
javelinHandlerCount++;
}
} catch (StringIndexOutOfBoundsException e) {
// Ignore
}
}
}
// compute total number of lines of javascript
javelinJavascriptLines += lineNumber;
javelinTransactionCount++;
} else if (databaseObject instanceof SqlTransaction) {
SqlTransaction sqlTransaction = (SqlTransaction) databaseObject;
/*
* count the number of SELECT
*/
String query = sqlTransaction.getSqlQuery();
if (query != null) {
query = query.toLowerCase();
String pattern = "select";
int lastIndex = 0;
while (lastIndex != -1) {
lastIndex = query.indexOf(pattern, lastIndex);
if (lastIndex != -1) {
selectInQueryCount++;
lastIndex += pattern.length();
}
}
}
sqlTransactionCount++;
}
transactionWithVariablesCount++;
} else {
// transaction with no variables
transactionCount++;
}
} else // deal with statements
if (databaseObject instanceof Statement) {
// System.out.println(databaseObject.getClass().getName() + "\r\n");
if (databaseObject instanceof HandlerStatement) {
handlerstatementCount++;
} else {
statementCount++;
}
} else // deal with variables
if (databaseObject instanceof Variable) {
if (databaseObject.getParent() instanceof Transaction) {
if (databaseObject.getParent() instanceof JavelinTransaction) {
javelinTransactionVariableCount++;
} else if (databaseObject.getParent() instanceof HtmlTransaction) {
htmlTransactionVariableCount++;
} else if (databaseObject.getParent() instanceof SqlTransaction) {
sqlTransactionVariableCount++;
} else {
// should be zero
transactionVariableCount++;
}
} else if (databaseObject.getParent() instanceof Sequence) {
sequenceVariableCount++;
} else if (databaseObject.getParent() instanceof TestCase) {
testcaseVariableCount++;
}
} else if (databaseObject instanceof TestCase) {
testcaseCount++;
} else if (databaseObject instanceof Sequence) {
sequenceCount++;
} else if (databaseObject instanceof Step) {
if (databaseObject instanceof SimpleStep) {
SimpleStep simpleStep = (SimpleStep) databaseObject;
// Functions
String line;
int lineNumber = 0;
BufferedReader br = new BufferedReader(new StringReader(simpleStep.getExpression()));
while ((line = br.readLine()) != null) {
line = line.trim();
lineNumber++;
if (line.startsWith("function ")) {
try {
sequenceJavascriptFunction++;
} catch (StringIndexOutOfBoundsException e) {
// Ignore
}
}
}
sequenceJavascriptLines += lineNumber;
stepCount++;
} else
stepCount++;
} else if (databaseObject instanceof Sheet) {
sheetCount++;
} else if (databaseObject instanceof Pool) {
poolCount++;
}
super.walk(databaseObject);
}
}.go(project);
} catch (Exception e) {
// Just ignore, should never happen
}
}
} catch (Throwable e) {
throw new Exception("Unable to compute statistics of the project!: \n" + e.getMessage());
} finally {
}
return result;
}
use of com.twinsoft.convertigo.beans.connectors.SiteClipperConnector in project convertigo by convertigo.
the class ReferencesView method handleConnectorSelection.
private void handleConnectorSelection(Object firstElement) {
ConnectorTreeObject connectorTreeObject = (ConnectorTreeObject) firstElement;
Connector connectorSelected = connectorTreeObject.getObject();
String connectorSelectedName = connectorSelected.getName();
Project projectConnectorSelected = connectorSelected.getProject();
String connectorProjectName = connectorSelected.getProject().getName();
List<Transaction> transactions = connectorSelected.getTransactionsList();
try {
Project project = null;
List<String> projectNames = Engine.theApp.databaseObjectsManager.getAllProjectNamesList();
ProjectExplorerView projectExplorerView = ConvertigoPlugin.getDefault().getProjectExplorerView();
treeViewer.setInput(null);
RootNode root = new RootNode();
ConnectorNode connectorNode = null;
connectorNode = getConnectorNode(root, connectorSelected);
root.addChild(connectorNode);
IsUsedByNode isUsedByNode = new IsUsedByNode(connectorNode, "Is used by");
RequiresNode requiresNode = new RequiresNode(connectorNode, "Requires");
ProjectNode projectFolder = null;
// Search handlers are that referenced by the selected connector for continue with site Clipper
if (connectorSelected instanceof HtmlConnector) {
ProjectNode projectNode = new ProjectNode(requiresNode, connectorProjectName, projectConnectorSelected);
for (Transaction transaction : transactions) {
List<Statement> statements = ((HtmlTransaction) transaction).getStatements();
List<String> siteClipperConnectorNames = new ArrayList<String>();
for (Statement statement : statements) {
List<Statement> statementList = ((FunctionStatement) statement).getStatements();
for (Statement st : statementList) {
if (st instanceof ContinueWithSiteClipperStatement) {
ContinueWithSiteClipperStatement continueWithSiteClipperStatement = (ContinueWithSiteClipperStatement) st;
String siteClipperconnectorName = continueWithSiteClipperStatement.getSiteClipperConnectorName();
if (!siteClipperConnectorNames.contains(siteClipperconnectorName)) {
siteClipperConnectorNames.add(siteClipperconnectorName);
Connector siteClipperConnector = projectConnectorSelected.getConnectorByName(siteClipperconnectorName);
ConnectorNode connectorSiteClipperNode = new SiteClipperConnectorNode(projectNode, siteClipperconnectorName, siteClipperConnector);
projectNode.addChild(connectorSiteClipperNode);
}
}
}
}
}
if (projectNode.hasChildren()) {
requiresNode.addChild(projectNode);
}
} else if (connectorSelected instanceof SiteClipperConnector) {
List<Connector> connectors = projectConnectorSelected.getConnectorsList();
ProjectNode projectNode = new ProjectNode(isUsedByNode, connectorProjectName, projectConnectorSelected);
for (Connector connector : connectors) {
if (connector instanceof HtmlConnector) {
List<Transaction> transactionList = ((HtmlConnector) connector).getTransactionsList();
for (Transaction transaction : transactionList) {
List<Statement> statements = ((HtmlTransaction) transaction).getStatements();
for (Statement statement : statements) {
List<Statement> statementList = ((FunctionStatement) statement).getStatements();
for (Statement st : statementList) {
if (st instanceof ContinueWithSiteClipperStatement) {
String sourceSiteClipperConnectorName = ((ContinueWithSiteClipperStatement) st).getSiteClipperConnectorName();
if (sourceSiteClipperConnectorName.equals(connectorSelectedName)) {
ContinueWithSiteClipperStatement continueWithSiteClipperStatement = (ContinueWithSiteClipperStatement) st;
HtmlConnectorNode htmlConnectorNode = new HtmlConnectorNode(projectNode, connector.getName(), connector);
projectNode.addChild(htmlConnectorNode);
TransactionNode transactionNode = new TransactionNode(htmlConnectorNode, transaction.getName(), continueWithSiteClipperStatement);
htmlConnectorNode.addChild(transactionNode);
}
}
}
}
}
}
}
if (projectNode.hasChildren()) {
isUsedByNode.addChild(projectNode);
}
}
// Searching all objects that are referenced by the selected connector
for (String projectName : projectNames) {
project = getProject(projectName, projectExplorerView);
if (project != null) {
projectFolder = new ProjectNode(isUsedByNode, projectName, project);
UrlMapper urlMapper = project.getUrlMapper();
if (urlMapper != null) {
MapperNode mapperNode = new MapperNode(projectFolder, urlMapper.getName(), urlMapper);
List<UrlMapping> mappings = urlMapper.getMappingList();
for (UrlMapping mapping : mappings) {
MappingPathNode pathNode = new MappingPathNode(mapperNode, mapping.getPath(), mapping);
List<UrlMappingOperation> operations = mapping.getOperationList();
for (UrlMappingOperation operation : operations) {
String targetRequestable = operation.getTargetRequestable();
if (targetRequestable.startsWith(projectConnectorSelected + "." + connectorSelectedName + ".")) {
MappingOperationNode operationNode = new MappingOperationNode(pathNode, operation.getName(), operation);
pathNode.addChild(operationNode);
}
}
if (pathNode.hasChildren()) {
mapperNode.addChild(pathNode);
}
}
if (mapperNode.hasChildren()) {
projectFolder.addChild(mapperNode);
}
}
List<Sequence> sequences = project.getSequencesList();
for (Sequence sequence : sequences) {
List<Step> steps = sequence.getSteps();
SequenceNode sequenceNode = new SequenceNode(projectFolder, sequence.getName(), sequence);
for (Step step : steps) {
getConnectorReferencingIsUsedBy(step, projectExplorerView, sequenceNode, transactions, connectorProjectName, connectorSelectedName);
}
if (sequenceNode.hasChildren()) {
projectFolder.addChild(sequenceNode);
}
}
if (projectFolder.hasChildren()) {
isUsedByNode.addChild(projectFolder);
}
}
}
if (requiresNode.hasChildren()) {
connectorNode.addChild(requiresNode);
}
if (isUsedByNode.hasChildren()) {
connectorNode.addChild(isUsedByNode);
}
if (!connectorNode.hasChildren()) {
connectorNode.addChild(new InformationNode(connectorNode, "This connector is not used by any other objects"));
}
treeViewer.setInput(root);
treeViewer.expandAll();
} catch (EngineException e) {
ConvertigoPlugin.logException(e, "Error while analyzing the projects hierarchy", true);
}
}
Aggregations