/**
* Copyright (c) 2011 Cloudsmith Inc. and other contributors, as listed below.
* 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:
* Cloudsmith
*
*/
package org.cloudsmith.geppetto.graph;
import org.cloudsmith.geppetto.forge.v2.model.ModuleName;
import org.cloudsmith.geppetto.validation.runner.AllModuleReferences.Export;
/**
* Produces HREFs in the form of javascript function calls.
*
*/
public class JavascriptHrefProducer extends RelativeFileHrefProducer {
/**
* produces javascript:edgeClicked('idFrom', 'idTo')
* Note that if 'idTo' is '', this means an edge between a moduleId 'idFrom' to "puppet" -
* the corresponding Import node has classes "vertex", "FROM__idFrom", and no TO__.
*/
@Override
public String hrefForEdge(String idFrom, String idTo, boolean splitEdge) {
StringBuilder builder = new StringBuilder();
builder.append("javascript:edgeClicked(");
builder.append("'");
builder.append(idFrom);
builder.append("', '");
builder.append(idTo);
builder.append("',");
builder.append(splitEdge);
builder.append(")");
return builder.toString();
}
/**
* produces javascript:edgeClickedPptp('idFrom')
* Note that this means an edge between a moduleId 'idFrom' to the puppet runtime -
* the corresponding Import node has classes "vertex", "FROM__idFrom", and no TO__.
*/
@Override
public String hrefForEdgeToPptp(String idFrom) {
StringBuilder builder = new StringBuilder();
builder.append("javascript:edgeClickedPptp(");
builder.append("'");
builder.append(idFrom);
builder.append("')");
return builder.toString();
}
/**
* produces javascript:edgeClickedUnresolved('idFrom')
* Note that this means an edge between a moduleId 'idFrom' to something unknown -
* the corresponding Import node has classes "vertex", "FROM__idFrom", and no TO__.
*/
@Override
public String hrefForEdgeToUnresolved(String idFrom, boolean splitEdge) {
StringBuilder builder = new StringBuilder();
builder.append("javascript:edgeClickedUnresolved(");
builder.append("'");
builder.append(idFrom);
builder.append("',");
builder.append(splitEdge);
builder.append(")");
return builder.toString();
}
@Override
public String hrefForUnresolved(ModuleName fromModuleName, String name) {
StringBuilder builder = new StringBuilder();
builder.append("javascript:showUnresolved(");
builder.append("'");
builder.append(fromModuleName.withSeparator('_'));
builder.append("', ");
builder.append("'");
builder.append(name);
builder.append("'");
builder.append(")");
return builder.toString();
}
/* (non-Javadoc)
*
* @see org.cloudsmith.geppetto.graph.AbstractHrefProducer#hrefToFileLocation(java.lang.String, int, int,
* int) */
@Override
protected String hrefToFileLocation(String path, int line, int start, int length) {
StringBuilder builder = new StringBuilder();
builder.append("javascript:showFileContent(");
builder.append("'");
builder.append(path);
builder.append("'");
builder.append(",");
builder.append(line);
builder.append(",");
builder.append(start);
builder.append(",");
builder.append(length);
builder.append(")");
return builder.toString();
}
/* (non-Javadoc)
*
* @see org.cloudsmith.geppetto.graph.AbstractHrefProducer#hrefToModule(java.lang.String) */
@Override
protected String hrefToModule(String path) {
StringBuilder builder = new StringBuilder();
builder.append("javascript:showModule(");
builder.append("'");
builder.append(path);
builder.append("'");
builder.append(")");
return builder.toString();
}
/* (non-Javadoc)
*
* @see org.cloudsmith.geppetto.graph.AbstractHrefProducer#hrefToModule(java.lang.String) */
@Override
protected String hrefToNode(String path) {
StringBuilder builder = new StringBuilder();
builder.append("javascript:showRole(");
builder.append("'");
builder.append(path);
builder.append("'");
builder.append(")");
return builder.toString();
}
/* (non-Javadoc)
*
* @see
* org.cloudsmith.geppetto.graph.AbstractHrefProducer#hrefToPPTP(com.cloudsmith.hammer.puppet.validation.runner
* .AllModuleReferences
* .Export) */
@Override
protected String hrefToPPTP(Export e) {
StringBuilder builder = new StringBuilder();
builder.append("javascript:showPPTPInfo(");
builder.append("'");
builder.append(e.getName());
builder.append("', ");
builder.append("'");
builder.append(e.getEClass().getName());
builder.append("'");
builder.append(")");
return builder.toString();
}
}