当前位置: 首页>>代码示例>>Java>>正文


Java Valid类代码示例

本文整理汇总了Java中org.aikodi.chameleon.core.validation.Valid的典型用法代码示例。如果您正苦于以下问题:Java Valid类的具体用法?Java Valid怎么用?Java Valid使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


Valid类属于org.aikodi.chameleon.core.validation包,在下文中一共展示了Valid类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: analyze

import org.aikodi.chameleon.core.validation.Valid; //导入依赖的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.Valid; //导入依赖的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.Valid; //导入依赖的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.Valid; //导入依赖的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: AssignmentAsExpression

import org.aikodi.chameleon.core.validation.Valid; //导入依赖的package包/类
public AssignmentAsExpression() {
  super(AssignmentExpression.class, Valid.create());
}
 
开发者ID:markovandooren,项目名称:jnome,代码行数:4,代码来源:AssignmentAsExpression.java

示例6: EmptyAbstractType

import org.aikodi.chameleon.core.validation.Valid; //导入依赖的package包/类
public EmptyAbstractType() {
super(Type.class, Valid.create());
}
 
开发者ID:markovandooren,项目名称:jnome,代码行数:4,代码来源:EmptyAbstractType.java

示例7: SuspiciousCastAnalysis

import org.aikodi.chameleon.core.validation.Valid; //导入依赖的package包/类
public SuspiciousCastAnalysis() {
	super(Method.class, Valid.create());
}
 
开发者ID:markovandooren,项目名称:jnome,代码行数:4,代码来源:SuspiciousCastAnalysis.java

示例8: NonPrivateNonFinalField

import org.aikodi.chameleon.core.validation.Valid; //导入依赖的package包/类
public NonPrivateNonFinalField() {
  super(VariableDeclaration.class, Valid.create());
}
 
开发者ID:markovandooren,项目名称:jnome,代码行数:4,代码来源:NonPrivateNonFinalField.java

示例9: PublicFieldViolation

import org.aikodi.chameleon.core.validation.Valid; //导入依赖的package包/类
public PublicFieldViolation() {
	super(VariableDeclaration.class, Valid.create());
}
 
开发者ID:markovandooren,项目名称:jnome,代码行数:4,代码来源:PublicFieldViolation.java

示例10: IncomingLeak

import org.aikodi.chameleon.core.validation.Valid; //导入依赖的package包/类
public IncomingLeak() {
	super(AssignmentExpression.class, Valid.create());
}
 
开发者ID:markovandooren,项目名称:jnome,代码行数:4,代码来源:IncomingLeak.java

示例11: OutgoingLeak

import org.aikodi.chameleon.core.validation.Valid; //导入依赖的package包/类
public OutgoingLeak() {
	super(ReturnStatement.class, Valid.create());
}
 
开发者ID:markovandooren,项目名称:jnome,代码行数:4,代码来源:OutgoingLeak.java

示例12: NonDefensiveFieldAssignment

import org.aikodi.chameleon.core.validation.Valid; //导入依赖的package包/类
public NonDefensiveFieldAssignment() {
	super(AssignmentExpression.class, Valid.create());
}
 
开发者ID:markovandooren,项目名称:jnome,代码行数:4,代码来源:NonDefensiveFieldAssignment.java

示例13: analyze

import org.aikodi.chameleon.core.validation.Valid; //导入依赖的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

示例14: verifySelf

import org.aikodi.chameleon.core.validation.Valid; //导入依赖的package包/类
@Override
public Verification verifySelf() {
 return Valid.create();
}
 
开发者ID:markovandooren,项目名称:jnome,代码行数:5,代码来源:DimensionInitializer.java

示例15: verifySelf

import org.aikodi.chameleon.core.validation.Valid; //导入依赖的package包/类
@Override
public Verification verifySelf() {
	return Valid.create();
}
 
开发者ID:markovandooren,项目名称:jnome,代码行数:5,代码来源:ArrayInitializer.java


注:本文中的org.aikodi.chameleon.core.validation.Valid类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。