Javolution 6.0.0 java
LocalContext.java
Go to the documentation of this file.
1 /*
2  * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
3  * Copyright (C) 2012 - Javolution (http://javolution.org/)
4  * All rights reserved.
5  *
6  * Permission to use, copy, modify, and distribute this software is
7  * freely granted, provided that this notice is preserved.
8  */
9 package javolution.context;
10 
14 
43 public abstract class LocalContext extends AbstractContext {
44 
49  public static abstract class Parameter<T> extends Configurable<T> {
50 
56  Parameter.class, "supersede");
57 
62 
66  public Parameter() {
67  this.supersedePermission = new Permission<Parameter<T>>(
68  Parameter.class, "supersede", this);
69  }
70 
76  return supersedePermission;
77  }
78 
83  public T get() {
84  LocalContext ctx = current(LocalContext.class);
85  return (ctx != null) ? ctx.getValue(this, super.get()) : super.get();
86  }
87  }
88 
92  protected LocalContext() {}
93 
97  public static LocalContext enter() {
98  LocalContext ctx = current(LocalContext.class);
99  if (ctx == null) { // Root.
101  }
102  return (LocalContext) ctx.enterInner();
103  }
104 
114  public abstract <T> void supersede(Parameter<T> param, T localValue);
115 
123  protected abstract <T> T getValue(Parameter<T> param, T defaultValue);
124 
125 }
javolution.context.LocalContext.LocalContext
LocalContext()
Definition: LocalContext.java:92
javolution
javolution.lang.Configurable
Definition: Configurable.java:78
javolution.context.LocalContext.Parameter.SUPERSEDE_PERMISSION
static final Permission< Parameter<?> > SUPERSEDE_PERMISSION
Definition: LocalContext.java:55
javolution.context.LocalContext.enter
static LocalContext enter()
Definition: LocalContext.java:97
javolution.context.LocalContext
Definition: LocalContext.java:43
javolution.context
Definition: AbstractContext.java:9
javolution.context.LocalContext.Parameter
Definition: LocalContext.java:49
javolution.lang
Definition: Configurable.java:9
javolution.context.LocalContext.supersede
abstract< T > void supersede(Parameter< T > param, T localValue)
javolution.context.LocalContext.Parameter.supersedePermission
final Permission< Parameter< T > > supersedePermission
Definition: LocalContext.java:61
javolution.context.AbstractContext
Definition: AbstractContext.java:40
javolution.context.AbstractContext.current
static AbstractContext current()
Definition: AbstractContext.java:61
javolution.context.SecurityContext
Definition: SecurityContext.java:34
javolution.context.AbstractContext.enterInner
AbstractContext enterInner()
Definition: AbstractContext.java:141
javolution.context.SecurityContext.Permission
Definition: SecurityContext.java:48
javolution.context.LocalContext.getValue
abstract< T > T getValue(Parameter< T > param, T defaultValue)
javolution.context.LocalContext.Parameter.Parameter
Parameter()
Definition: LocalContext.java:66
javolution.osgi.internal
Definition: ConfigurableListenerImpl.java:9
javolution.osgi.internal.OSGiServices
Definition: OSGiServices.java:50
javolution.osgi
javolution.context.LocalContext.Parameter.getSupersedePermission
Permission< Parameter< T > > getSupersedePermission()
Definition: LocalContext.java:75
javolution.osgi.internal.OSGiServices.getLocalContext
static LocalContext getLocalContext()
Definition: OSGiServices.java:84