本文整理汇总了Java中com.sun.mirror.util.SourcePosition类的典型用法代码示例。如果您正苦于以下问题:Java SourcePosition类的具体用法?Java SourcePosition怎么用?Java SourcePosition使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
SourcePosition类属于com.sun.mirror.util包,在下文中一共展示了SourcePosition类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: ProcessedHttpUrlAnnotation
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
public ProcessedHttpUrlAnnotation(String typeName, Declaration declaration, String value, int weight) {
MethodDeclaration methodDeclaration = (MethodDeclaration) declaration;
String className = methodDeclaration.getDeclaringType().getQualifiedName();
this.methodName = declaration.getSimpleName();
this.docComment = declaration.getDocComment();
this.className = className;
this.value = value;
this.weight = weight;
this.setParams(methodDeclaration.getParameters());
String typeNameShort = typeName.substring(typeName.lastIndexOf("."));
SourcePosition positionInCode = declaration.getPosition();
sourceRef = positionInCode.file().getName() + ":" + positionInCode.line();
if (!(declaration instanceof MethodDeclaration)) {
messager.printWarning(positionInCode, "@" + typeNameShort + " declared on a non-method " + positionInCode);
}
if (showPositionsOfAnnotations) {
messager.printNotice(positionInCode, "@" + typeNameShort + " value " + value + " weight " + weight);
}
}
示例2: checkTypeIsFacadable
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
private void checkTypeIsFacadable( TypeMirror type, SourcePosition position ) {
if ( type.equals( environment.getTypeUtils().getVoidType() ) ) {
// Annotating with Facadable on void methods is an error.
messager.printError( position, "Methods returning void cannot be marked as @Facadable" );
} else if ( type instanceof PrimitiveType ) {
// Annotating a primitive parameter with Facadable is an error.
messager.printError( position, "Primitive types cannot be marked as @Facadable" );
}
}
示例3: getAnnotationLineNumber
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
static int getAnnotationLineNumber (MethodDeclaration method, String className)
{
for (AnnotationMirror mirror : method.getAnnotationMirrors ())
{
if (!className.equals (mirror.getAnnotationType ().getDeclaration ().getQualifiedName ()))
continue;
SourcePosition pos = mirror.getPosition ();
return pos == null ? 0 : pos.line ();
}
return 0;
}
示例4: getAnnotationArrayLineNumbers
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
static int[] getAnnotationArrayLineNumbers (MethodDeclaration method, String className, String attr)
{
for (AnnotationMirror mirror : method.getAnnotationMirrors ())
{
if (!className.equals (mirror.getAnnotationType ().getDeclaration ().getQualifiedName ()))
continue;
Map<AnnotationTypeElementDeclaration, AnnotationValue> map = mirror.getElementValues ();
for (AnnotationTypeElementDeclaration key : map.keySet ())
{
if (!attr.equals (key.getSimpleName ()))
continue;
@SuppressWarnings ("unchecked")
Collection<AnnotationValue> c = (Collection<AnnotationValue>)map.get (key).getValue ();
if (c == null)
return null;
int[] returnVal = new int[c.size ()];
int i = 0;
for (AnnotationValue v : c)
{
SourcePosition pos = v.getPosition ();
if (pos == null)
returnVal[i++] = 0;
else
returnVal[i++] = pos.line ();
}
return returnVal;
}
}
return null;
}
示例5: printError
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
/**
* {@inheritDoc}
*/
public void printError(SourcePosition pos, String msg) {
if (pos instanceof SourcePositionImpl) {
SourcePositionImpl posImpl = (SourcePositionImpl) pos;
JavaFileObject prev = bark.useSource(posImpl.getSource());
bark.aptError(posImpl.getJavacPosition(), "Messager", msg);
bark.useSource(prev);
} else
printError(msg);
}
示例6: printWarning
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
/**
* {@inheritDoc}
*/
public void printWarning(SourcePosition pos, String msg) {
if (pos instanceof SourcePositionImpl) {
SourcePositionImpl posImpl = (SourcePositionImpl) pos;
JavaFileObject prev = bark.useSource(posImpl.getSource());
bark.aptWarning(posImpl.getJavacPosition(), "Messager", msg);
bark.useSource(prev);
} else
printWarning(msg);
}
示例7: printNotice
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
/**
* {@inheritDoc}
*/
public void printNotice(SourcePosition pos, String msg) {
if (pos instanceof SourcePositionImpl) {
SourcePositionImpl posImpl = (SourcePositionImpl) pos;
JavaFileObject prev = bark.useSource(posImpl.getSource());
bark.aptNote(posImpl.getJavacPosition(), "Messager", msg);
bark.useSource(prev);
} else
printNotice(msg);
}
示例8: processHttpExceptionHandlerAnnotation
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
private ProcessedHttpExceptionAnnotation processHttpExceptionHandlerAnnotation(Declaration declaration) {
SourcePosition position = declaration.getPosition();
if (!(declaration instanceof MethodDeclaration)) {
messager.printWarning(declaration.getPosition(), "@HttpExceptionHandler declared on a non-method " + position);
return null;
}
MethodDeclaration methodDeclaration = (MethodDeclaration) declaration;
HttpExceptionHandler httpExceptionHandler = declaration.getAnnotation(HttpExceptionHandler.class);
String className = methodDeclaration.getDeclaringType().getQualifiedName();
ProcessedHttpExceptionAnnotation ea = new ProcessedHttpExceptionAnnotation();
ea.exceptionName = httpExceptionHandler.value(); //.getName();
ea.methodName = declaration.getSimpleName();
ea.docComment = declaration.getDocComment();
ea.className = className;
ea.setParams(methodDeclaration.getParameters());
// out exceptionName might not be set
if ("[ unassigned ]".equals(ea.exceptionName) && methodDeclaration.getParameters().size() > 0) {
// use first param
ea.exceptionName = methodDeclaration.getParameters().iterator().next().getType().toString();
}
if (showPositionsOfAnnotations) {
messager.printNotice(position, "@HttpExceptionHandlerUrl value " + ea.value + " weight " + ea.weight);
}
return ea;
}
示例9: visitClassDeclaration
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
public void visitClassDeclaration(ClassDeclaration d) {
WebService webService = d.getAnnotation(WebService.class);
if (!shouldProcessWebService(webService, d))
return;
if (builder.checkAndSetProcessed(d))
return;
typeDeclSOAPBinding = d.getAnnotation(SOAPBinding.class);
typeDecl = d;
if (serviceImplName == null)
serviceImplName = d.getQualifiedName();
String endpointInterfaceName = webService != null ? webService.endpointInterface() : null;
if (endpointInterfaceName != null && endpointInterfaceName.length() > 0) {
SourcePosition pos = pos = d.getPosition();
checkForInvalidImplAnnotation(d, SOAPBinding.class);
if (webService.name().length() > 0)
annotationError(pos, WebserviceapMessages.localizableWEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ELEMENT("name"));
endpointReferencesInterface = true;
verifyImplAnnotations(d);
inspectEndpointInterface(endpointInterfaceName, d);
serviceImplName = null;
return;
}
processingSEI = false;
preProcessWebService(webService, d);
processWebService(webService, d);
serviceImplName = null;
postProcessWebService(webService, d);
serviceImplName = null;
}
示例10: checkForInvalidSEIAnnotation
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
protected void checkForInvalidSEIAnnotation(InterfaceDeclaration d, Class annotationClass) {
Object annotation = d.getAnnotation(annotationClass);
if (annotation != null) {
SourcePosition pos = d.getPosition();
annotationError(pos, WebserviceapMessages.localizableWEBSERVICEAP_INVALID_SEI_ANNOTATION(annotationClass.getName(), d.getQualifiedName()));
}
}
示例11: checkForInvalidImplAnnotation
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
protected void checkForInvalidImplAnnotation(Declaration d, Class annotationClass) {
Object annotation = d.getAnnotation(annotationClass);
if (annotation != null) {
SourcePosition pos = d.getPosition();
annotationError(pos, WebserviceapMessages.localizableWEBSERVICEAP_ENDPOINTINTEFACE_PLUS_ANNOTATION(annotationClass.getName()));
}
}
示例12: onError
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
public void onError(SourcePosition pos, Localizable msg) throws ModelerException {
if (messager != null) {
messager.printError(pos, localizer.localize(msg));
} else {
throw new ModelerException(msg);
}
}
示例13: sort
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
private <A extends Declaration> List<A> sort(List<A> l) {
if(l.isEmpty()) return l;
// APT supports the operation mode where it creates Declarations from
// a class file, in which case the source position is not available
// use that as a key to sort them correctly. This isn't "correct" in
// the sense that it relies on undocumented behavior of APT where
// it returns declarations in the reverse order, but this makes things work.
SourcePosition pos = l.get(0).getPosition();
if(pos!=null)
Collections.sort(l,SOURCE_POS_COMPARATOR);
else
Collections.reverse(l);
return l;
}
示例14: getLocation
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
private Location getLocation(final String name, final SourcePosition sp) {
return new Location() {
public String toString() {
if(sp==null)
return name+" (Unknown Source)";
// just like stack trace, we just print the file name and
// not the whole path. The idea is that the pakage name should
// provide enough clue on which directory it lives.
return name+'('+sp.file().getName()+':'+sp.line()+')';
}
};
}
示例15: compare
import com.sun.mirror.util.SourcePosition; //导入依赖的package包/类
public int compare(Declaration d1, Declaration d2) {
if (d1 == d2)
return 0;
SourcePosition p1 = d1.getPosition();
SourcePosition p2 = d2.getPosition();
if (p1 == null) {
return (p2 == null) ? 0 : 1;
} else {
if (p2 == null)
return -1;
int fileComp = p1.file().compareTo(p2.file());
if (fileComp == 0) {
long diff = (long) p1.line() - (long) p2.line();
if (diff == 0) {
diff = Long.signum((long) p1.column() - (long) p2.column());
if (diff != 0)
return (int) diff;
else {
// declarations may be two
// compiler-generated members with the
// same source position
return (Long.signum((long) System.identityHashCode(d1) -
(long) System.identityHashCode(d2)));
}
} else
return (diff < 0) ? -1 : 1;
} else
return fileComp;
}
}