本文整理汇总了Java中net.ssehub.easy.varModel.model.Project.getImportsCount方法的典型用法代码示例。如果您正苦于以下问题:Java Project.getImportsCount方法的具体用法?Java Project.getImportsCount怎么用?Java Project.getImportsCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类net.ssehub.easy.varModel.model.Project
的用法示例。
在下文中一共展示了Project.getImportsCount方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: saveValues
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
/**
* Saves the values of configuration projects(recursive function).
* @param project The copied QM model (the starting point, which imports all the other models).
* @param done The list of already saved projects, should be empty at the beginning.
*/
private void saveValues(Project project, Set<Project> done) {
if (!done.contains(project)) {
done.add(project);
if (project.getName().endsWith(QmConstants.CFG_POSTFIX)) {
Bundle.getLogger(ModelModifier.class).debug("Saving ", project.getName());
try {
Configuration tmpConfig = new Configuration(project, true);
// Will change the underlying Project as a side effect
new QmPrunedConfigSaver(tmpConfig);
} catch (ConfigurationException e1) {
Bundle.getLogger(ModelModifier.class).exception(e1);
}
}
for (int i = 0, end = project.getImportsCount(); i < end; i++) {
saveValues(project.getImport(i).getResolved(), done);
}
}
}
示例2: put
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
/**
* Puts the variables of project into <code>data</code> if they comply with <code>selector</code>.
*
* @param project the project to be iterated over
* @param data the data to be modified as a side effect (fqn-instance mapping)
* @param cfg the underlying IVML configuration
* @param selector the selector instance
*/
private void put(Project project, Map<String, IDecisionVariable> data,
net.ssehub.easy.varModel.confModel.Configuration cfg, IVariableSelector selector) {
for (int i = 0; i < project.getImportsCount(); i++) {
ProjectImport imp = project.getImport(i);
if (null != imp.getResolved()) {
put(imp.getResolved(), data, cfg, selector);
}
}
for (int e = 0; e < project.getElementCount(); e++) {
ContainableModelElement elt = project.getElement(e);
if (elt instanceof AbstractVariable) {
IDecisionVariable var = cfg.getDecision((AbstractVariable) elt);
if (null != var && AssignmentState.FROZEN == var.getState() && selector.select(var)) {
data.put(var.getDeclaration().getQualifiedName(), var);
}
}
}
}
示例3: addOperations
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
/**
* Adds all operations of <code>project</code> and its imports to <code>operations</code>.
*
* @param operations the name-operation mapping to be filled as a side effect
* @param fields the name-field mapping to be filled as a side effect
* @param project the project the operations shall be added for
* @param done already done projects
*/
private void addOperations(Map<String, OperationDescriptor> operations, Map<String, FieldDescriptor> fields,
Project project, Set<Project> done) {
if (!done.contains(project)) {
done.add(project);
int eCount = project.getElementCount();
for (int e = 0; e < eCount; e++) {
ContainableModelElement elt = project.getElement(e);
if (elt instanceof DecisionVariableDeclaration) {
addOperations((DecisionVariableDeclaration) elt, operations, fields);
} else if (elt instanceof AttributeAssignment) {
addOperations((AttributeAssignment) elt, operations, fields);
}
}
for (int i = 0; i < project.getImportsCount(); i++) {
Project imp = project.getImport(i).getResolved();
if (null != imp) {
addOperations(operations, fields, imp, done);
}
}
}
}
示例4: compare
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
/**
* Recursive method for comparing the modified project with the expected project.
* @param actual The modified project (which was changed by the {@link ProjectRewriteVisitor}).
* @param expected The expected project, loaded from {@link #expectedModelDir}.
* @param done The list of already tested modified projects, should be empty when called from outside.
*/
private void compare(Project actual, Project expected, Set<Project> done) {
if (!done.contains(actual)) {
done.add(actual);
// Compare String version of projects
Assert.assertEquals("Project \"" + actual.getName() + "\" is not as expected:\n", toString(expected),
toString(actual));
// Continue with imported projects
for (int i = 0; i < actual.getImportsCount(); i++) {
// Imports of expected should be in same order as in actual
compare(actual.getImport(i).getResolved(), expected.getImport(i).getResolved(), done);
}
}
}
示例5: visitProject
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
@Override
public void visitProject(Project project) {
if (!done.contains(project)) {
done.add(project);
// local variables take precedence over imports
for (int e = 0; e < project.getElementCount(); e++) {
project.getElement(e).accept(this);
}
for (int i = 0; i < project.getImportsCount(); i++) {
ProjectImport imp = project.getImport(i);
String name = imp.getName();
if (null != imp.getInterfaceName()) {
name = name + IvmlKeyWords.NAMESPACE_SEPARATOR + imp.getInterfaceName();
}
imports.put(name, i);
if (null != imp.getResolved()) {
imp.getResolved().accept(this);
}
}
}
}
示例6: assertImported
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
/**
* Recursively asserts the resolved instances of model imports.
* @param project the project to visit
* @param imported the already imported (and visited) projects
*/
private static void assertImported(Project project, Map<ModelInfo<Project>, Project> imported) {
for (int i = 0; i < project.getImportsCount(); i++) {
ProjectImport imp = project.getImport(i);
Project resolved = imp.getResolved();
Assert.assertNotNull("import '" + imp.getName() + "' in '" + project.getName() + "' is not resolved",
resolved);
ModelInfo<Project> info = VarModel.INSTANCE.availableModels().getModelInfo(resolved);
Assert.assertNotNull("no model info for '" + imp.getName() + "'", info);
if (imported.containsKey(info)) {
Assert.assertTrue("only one instance of '" + imp.getName() + "' shall be used in the model references",
resolved == imported.get(info));
// already visited, no recursion
} else {
imported.put(info, imp.getResolved());
assertImported(imp.getResolved(), imported);
}
}
}
示例7: createModelContent
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
/**
* Creates the model content based on the given <code>project</code>.
*
* @param project the IVML project instance
*/
private void createModelContent(Project project) {
if (null != project) {
int elementCount = project.getElementCount();
for (int c = 0; c < elementCount; c++) {
collect(project.getElement(c));
}
int importCount = project.getImportsCount();
if (importCount > 0) {
for (int i = 0; i < importCount; i++) {
System.err.println("imports found!");
resolveImports(project.getImport(i));
}
}
}
}
示例8: searchSequenceValue
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
/**
* Searches the given <code>project</code> for a sequence that contains <code>value</code> and returns the sequence
* index access expression if successful. This method shall not be called directly. Use
* {@link #searchSequenceValue(Project, Value, Configuration)} instead.
*
* @param project the project to start searching
* @param value the value to be used as reference
* @param config the actual configuration
* @param done all the projects that have been searched so far
* @return the access expression or <b>null</b> if none can be created
*/
private ConstraintSyntaxTree searchSequenceValue(Project project, Value value, Configuration config,
Set<Object> done) {
ConstraintSyntaxTree result = null;
if (!done.contains(project)) {
done.add(project);
IDatatype valueType = value.getType();
// search for a sequence that has the value type as generic type, try to access the value
// and if this works, create a index access expression
for (int e = 0; e < project.getElementCount(); e++) {
ContainableModelElement elt = project.getElement(e);
if (elt instanceof DecisionVariableDeclaration) {
DecisionVariableDeclaration decl = (DecisionVariableDeclaration) elt;
IDatatype declType = decl.getType();
if (Sequence.isSequence(declType, valueType)) {
IDecisionVariable candidateVar = config.getDecision(decl);
result = createIndexAccess(decl, candidateVar.getValue(), value);
}
}
}
// if not found, search in related projects
if (null == result) {
for (int i = 0; null == result && i < project.getImportsCount(); i++) {
Project imp = project.getImport(i).getResolved();
if (null != imp) {
result = searchSequenceValue(imp, value, config, done);
}
}
}
}
return result;
}
示例9: getBindingTimeAnnotation
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
/**
* Returns the binding time annotation of the project to create the selector statement of the freeze block.
* @param project The project for which the freeze block shall be created.
* @return The binding time annotation or <tt>null</tt> it could not be found.
*/
private Attribute getBindingTimeAnnotation(Project project) {
Attribute btAnnotation = project.getAttribute(QmConstants.ANNOTATION_BINDING_TIME);
// Try to build up the cache
if (null == btAnnotation && project.getName().endsWith(QmConstants.CFG_POSTFIX)) {
String baseName = project.getName().substring(0, project.getName().length()
- QmConstants.CFG_POSTFIX.length());
Project baseProject = usedProjects.get(baseName);
if (null == baseProject) {
for (int i = 0, end = project.getImportsCount(); i < end && null == baseProject; i++) {
Project importedProject = project.getImport(i).getResolved();
String importedName = importedProject.getName();
if (!usedProjects.containsKey(importedName)) {
usedProjects.put(importedName, importedProject);
}
if (baseName.equals(importedName)) {
baseProject = importedProject;
}
}
}
if (null != baseProject) {
for (int i = 0, end = baseProject.getAttributesCount(); i < end && btAnnotation == null; i++) {
btAnnotation = baseProject.getAttribute(QmConstants.ANNOTATION_BINDING_TIME);
}
}
}
return btAnnotation;
}
示例10: visitProject
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
@Override
public void visitProject(Project project) {
for (int i = 0; i < project.getImportsCount(); i++) {
project.getImport(i).accept(this);
}
for (int e = 0; e < project.getElementCount(); e++) {
project.getElement(e).accept(this);
}
}
示例11: visitProject
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
@Override
public void visitProject(Project project) {
for (int i = 0; i < project.getImportsCount(); i++) {
project.getImport(i).accept(this);
}
int eSize = project.getElementCount();
for (int e = 0; e < eSize; e++) {
project.getElement(e).accept(this);
}
}
示例12: findAttribute
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
/**
* Finds a declaration for the attribute <code>name</code> in <code>prj</code> or it's imports.
*
* @param prj the project to search for
* @param name the name of the attribute
* @param done the already processed projects (cycle detection)
* @return the found attribute (may be <b>null</b>)
*/
private Attribute findAttribute(Project prj, String name, Set<Project> done) {
Attribute result = null;
if (!done.contains(prj)) {
done.add(prj);
result = prj.getAttribute(name);
for (int i = 0; null == result && i < prj.getImportsCount(); i++) {
Project p = prj.getImport(i).getResolved();
if (null != p) {
result = findAttribute(p, name, done);
}
}
}
return result;
}
示例13: assertProject
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
/**
* Tests the copies projects (and its imports).
* @param original The original for comparison.
* @param copy The copied project to test.
* @param done Already checked copied projects (to avoid cycles).
*/
private void assertProject(Project original, Project copy, java.util.Set<Project> done) {
Assert.assertNotNull("Copy is null", copy);
if (!done.contains(copy)) {
done.add(copy);
// Test project
Assert.assertEquals("Copied project does not have the same name", original.getName(), copy.getName());
Assert.assertNotSame("Projects \"" + original.getName() + "\"are same, i.e., no copy was created",
original, copy);
Assert.assertTrue("Copied project has not the same Version",
Version.equals(original.getVersion(), copy.getVersion()));
Assert.assertEquals("Copied project does not have the same amount of imports", original.getImportsCount(),
copy.getImportsCount());
Assert.assertEquals("Copied project has not the same amount of elements", original.getElementCount(),
copy.getElementCount());
// Test imports
Assert.assertEquals("Copy has different amount of imports", original.getImportsCount(),
copy.getImportsCount());
for (int i = 0; i < original.getImportsCount(); i++) {
ProjectImport orgImport = original.getImport(i);
ProjectImport copyImport = copy.getImport(i);
Assert.assertNotSame("Original import[" + i + "] was used instead of copy for import of \""
+ copyImport.getName() + "\"", orgImport, copyImport);
Assert.assertEquals("Import[" + i + "] name is wrong", orgImport.getName(), copyImport.getName());
// TODO SE: Version restriction
Assert.assertEquals("Interface[" + i + "] name is wrong", orgImport.getInterfaceName(),
copyImport.getInterfaceName());
assertProject(orgImport.getResolved(), copyImport.getResolved(), done);
}
// Test annotations
assertAnnotateableElement(original, copy, copy);
}
}
示例14: checkForDispatch
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
/**
* Checks the given scope for dispatch candidates.
*
* @param scope the scope to check for
*/
void checkForDispatch(Project scope) {
if (!doneProjects.contains(scope)) {
doneProjects.add(scope);
for (int o = 0, n = scope.getOperationCount(); bestDiff > 0 && o < n; o++) {
CustomOperation tmp = scope.getOperation(o);
if (tmp != operation && opName.equals(tmp.getName()) && opParamCount == tmp.getParameterCount()) {
String tmpSignature = tmp.getSignature();
if (!candidates.contains(tmpSignature)) {
int diff = EvaluationUtils.calculateDiff(tmp, returnType, argTypes);
if (diff < 0) {
continue;
}
candidates.add(tmpSignature);
if (diff < bestDiff) {
bestMatch = tmp;
bestDiff = diff;
}
}
}
}
for (int i = 0, n = scope.getImportsCount(); bestDiff > 0 && i < n; i++) {
Project imp = scope.getImport(i).getResolved();
if (null != imp) {
checkForDispatch(imp);
}
}
}
}
示例15: visitProject
import net.ssehub.easy.varModel.model.Project; //导入方法依赖的package包/类
@Override
public void visitProject(Project project) {
if (considerImports) {
for (int i = 0; i < project.getImportsCount(); i++) {
project.getImport(i).accept(this);
}
}
for (int i = 0; i < project.getElementCount(); i++) {
project.getElement(i).accept(this);
}
}