play.libs
Class Classpath

java.lang.Object
  extended by play.libs.Classpath

public class Classpath
extends java.lang.Object


Constructor Summary
Classpath()
           
 
Method Summary
static java.util.Set<java.lang.String> getTypes(Application app, java.lang.String packageName)
          Scans the application classloader to retrieve all types within a specific package.
static java.util.Set<java.lang.String> getTypesAnnotatedWith(Application app, java.lang.String packageName, java.lang.Class<? extends java.lang.annotation.Annotation> annotation)
          Scans the application classloader to retrieve all types annotated with a specific annotation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Classpath

public Classpath()
Method Detail

getTypes

public static java.util.Set<java.lang.String> getTypes(Application app,
                                                       java.lang.String packageName)
Scans the application classloader to retrieve all types within a specific package.

This method is useful for some plug-ins, for example the EBean plugin will automatically detect all types within the models package.

Note that it is better to specify a very specific package to avoid expensive searches.

Parameters:
packageName - the root package to scan
Returns:
a set of types names satisfying the condition

getTypesAnnotatedWith

public static java.util.Set<java.lang.String> getTypesAnnotatedWith(Application app,
                                                                    java.lang.String packageName,
                                                                    java.lang.Class<? extends java.lang.annotation.Annotation> annotation)
Scans the application classloader to retrieve all types annotated with a specific annotation.

This method is useful for some plug-ins, for example the EBean plugin will automatically detect all types annotated with @javax.persistance.Entity.

Note that it is better to specify a very specific package to avoid expensive searches.

Parameters:
packageName - the root package to scan
annotation - annotation class
Returns:
a set of types names statifying the condition