package xapi.enviro;
import xapi.util.api.ProvidesValue;
import xapi.util.service.PropertyService;
import java.lang.annotation.Annotation;
/**
* An interface to encapsulate a runtime environment.
*
* In xapi, this provider is used primarily for selecting
* runtime environments during the compile phase,
* however, the environment model is designed to allow
* encapsulation of a runtime within a runtime,
* by providing {@link #getOrCreate(Object, ProvidesValue)},
* which allows a create-once-per-enviro abstraction.
*
* @author "James X. Nelson (james@wetheinter.net)"
*
*/
public interface Enviro {
Annotation[] platform();
PropertyService properties();
boolean isDev();
boolean isProd();
boolean isTest();
int maxThreads();
String version();
}