當前位置: 首頁>>代碼示例>>Java>>正文


Java Verification類代碼示例

本文整理匯總了Java中org.aikodi.chameleon.core.validation.Verification的典型用法代碼示例。如果您正苦於以下問題:Java Verification類的具體用法?Java Verification怎麽用?Java Verification使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


Verification類屬於org.aikodi.chameleon.core.validation包,在下文中一共展示了Verification類的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: analyze

import org.aikodi.chameleon.core.validation.Verification; //導入依賴的package包/類
@Override
public void analyze(AssignmentExpression assignment) throws LookupException {
	Verification result = Valid.create();
	Method method = assignment.nearestAncestor(Method.class);
	Java7 language = method.language(Java7.class);
	if(method != null && Predicates.EXTERNALLY_ACCESSIBLE.eval(method)) {
		Variable v = assignment.variable();
		if(v instanceof RegularMemberVariable && v.isTrue(language.INSTANCE)) {
			Expression e = assignment.getValue();
			if(e instanceof CrossReference) {
				Declaration rhs = ((CrossReference) e).getElement();
				if(rhs instanceof FormalParameter) {
					Type type_of_value = ((FormalParameter)rhs).getType();
					if((!Predicates.IMMUTABLE_COLLECTION.eval(type_of_value)) && Predicates.COLLECTION.eval(type_of_value)) {
						result = result.and(new IncomingCollectionEncapsulationViolationResult(v,(FormalParameter) rhs));
					}
				}
			}
		}
	}

	setResult(result().and(result));
}
 
開發者ID:markovandooren,項目名稱:jnome,代碼行數:24,代碼來源:IncomingLeak.java

示例2: analyze

import org.aikodi.chameleon.core.validation.Verification; //導入依賴的package包/類
/**
 * @{inheritDoc}
 */
@Override
protected void analyze(ReturnStatement statement) throws LookupException {
  Verification result = Valid.create();
  Method nearestAncestor = statement.nearestAncestor(Method.class);
  if(nearestAncestor != null && 
  		Predicates.EXTERNALLY_ACCESSIBLE.eval(nearestAncestor)) {
          Expression expr = statement.getExpression();
          if(expr instanceof CrossReference) {
              Declaration declaration = ((CrossReference) expr).getElement();
          		Java7 language = statement.language(Java7.class);
              if(declaration instanceof RegularMemberVariable && declaration.isTrue(language.INSTANCE)) {
                  Type type = ((RegularMemberVariable) declaration).getType();
                  if((!Predicates.IMMUTABLE_COLLECTION.eval(type)) && Predicates.COLLECTION.eval(type)) {
                      result = new OutgoingCollectionEncapsulationViolation(nearestAncestor, (Variable) declaration);
                  }
              }
          }
  }
  setResult(result().and(result));
}
 
開發者ID:markovandooren,項目名稱:jnome,代碼行數:24,代碼來源:OutgoingLeak.java

示例3: verifySelf

import org.aikodi.chameleon.core.validation.Verification; //導入依賴的package包/類
@Override
public Verification verifySelf() {
	Verification result = Valid.create();
	if(newSignature() == null) {
		result = result.and(new BasicProblem(this, "The renaming clause does not contain a new name."));
	}
	QualifiedName fqn = oldFQN();
	if(fqn == null) {
		result = result.and(new BasicProblem(this, "The renaming clause does not contain an old name."));
	}
	try {
		oldDeclaration();
	} catch(LookupException exc) {
		String id = "";
		if(fqn != null) {
			id = fqn.toString();
		}
		result = result.and(new BasicProblem(this, "The exported declaration "+id+"cannot be found."));
	}
	return result;
}
 
開發者ID:markovandooren,項目名稱:jlo,代碼行數:22,代碼來源:AbstractClause.java

示例4: verifySelf

import org.aikodi.chameleon.core.validation.Verification; //導入依賴的package包/類
@Override
public Verification verifySelf() {
	Type referencedElement;
	try {
		referencedElement = getElement();
		if(referencedElement != null) {
			return Valid.create();
		} else {
			return new UnresolvableCrossReference(this);
		}
	} catch (LookupException e) {
		return new UnresolvableCrossReference(this);
	}
}
 
開發者ID:markovandooren,項目名稱:jnome,代碼行數:15,代碼來源:GenericTypeReference.java

示例5: analyze

import org.aikodi.chameleon.core.validation.Verification; //導入依賴的package包/類
@Override
protected void analyze(AssignmentExpression assignment) throws LookupException {
	Verification result = Valid.create();
		final Method method = assignment.nearestAncestor(Method.class);
		if(method != null && method.isTrue(method.language(Java7.class).PUBLIC)) {
			Variable v = assignment.variable();
			if(v instanceof RegularMemberVariable) {
				Expression e = assignment.getValue();
				if(e instanceof CrossReference) {
					final Declaration rhs = ((CrossReference) e).getElement();
					if(rhs instanceof FormalParameter) {
						Type booleanType = assignment.view(JavaView.class).primitiveType("boolean");
						if(! ((FormalParameter) rhs).getType().sameAs(booleanType)) {
							boolean notMentioned = true;
							Statement stat = assignment.lexical().farthestAncestor(new UniversalPredicate<Statement,Nothing>(Statement.class) {
								@Override
								public boolean uncheckedEval(Statement s) {
									// If s.parent() == the implementation object, then we have reached the
									// block of the implementation, so we have to stop before that to object
									// the child statement of the block of the implementation
									return (! (s.parent() instanceof Implementation)) && s.nearestAncestor(Method.class) == method;
								}
							});
							Block b = (Block) stat.parent();
							List<Statement> befores = b.statementsBefore(stat);
							for(Statement before : befores) {
								List<CrossReference> crefs = before.descendants(CrossReference.class, cref -> cref.getElement().sameAs(rhs));
								if(! crefs.isEmpty()) {
									notMentioned = false; 
								}
							}
							if(notMentioned) {
								result = new NonDefensiveFieldAssignmentResult((FormalParameter)rhs,v);
							}
						}
					}
				}
			}
		}
	setResult(result().and(result));
}
 
開發者ID:markovandooren,項目名稱:jnome,代碼行數:42,代碼來源:NonDefensiveFieldAssignment.java

示例6: verifySelf

import org.aikodi.chameleon.core.validation.Verification; //導入依賴的package包/類
@Override
public Verification verifySelf() {
 return Valid.create();
}
 
開發者ID:markovandooren,項目名稱:jnome,代碼行數:5,代碼來源:DimensionInitializer.java

示例7: verifySelf

import org.aikodi.chameleon.core.validation.Verification; //導入依賴的package包/類
@Override
public Verification verifySelf() {
	return Valid.create();
}
 
開發者ID:markovandooren,項目名稱:jnome,代碼行數:5,代碼來源:ArrayInitializer.java

示例8: verifySelf

import org.aikodi.chameleon.core.validation.Verification; //導入依賴的package包/類
@Override
public Verification verifySelf() {
   return Valid.create();
}
 
開發者ID:markovandooren,項目名稱:jnome,代碼行數:5,代碼來源:JavaUnionTypeReference.java

示例9: verifySelf

import org.aikodi.chameleon.core.validation.Verification; //導入依賴的package包/類
@Override
public Verification verifySelf() {
  return Valid.create();
}
 
開發者ID:markovandooren,項目名稱:jnome,代碼行數:5,代碼來源:PureWildcard.java

示例10: verifySelf

import org.aikodi.chameleon.core.validation.Verification; //導入依賴的package包/類
/**
 * A super target is always valid. If invocations on a super target must always resolve to an effective declaration, 
 * as is the case in Java, then the language must add that rule. For mixins, for example, that must only be the case for
 * an actual combination of mixins.
 */
@Override
public Verification verifySelf() {
	return Valid.create();
}
 
開發者ID:markovandooren,項目名稱:jlo,代碼行數:10,代碼來源:AbstractTarget.java


注:本文中的org.aikodi.chameleon.core.validation.Verification類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。