01: /*
02: * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
03: */
04: package com.tc.object.config;
05:
06: import com.tc.aspectwerkz.reflect.ClassInfo;
07:
08: /**
09: * Describes the configuration policy for instrumenation of classes.
10: *
11: * @author orion
12: */
13: interface InstrumentationDescriptor {
14:
15: /**
16: * Returns the name of the method to call after loading an object from the server, or null if none was defined in
17: * config.
18: */
19: public String getOnLoadMethodIfDefined();
20:
21: /**
22: * Returns the body of the script to execute after loading an object from the server, or null if none was defined in
23: * config.
24: */
25: public String getOnLoadScriptIfDefined();
26:
27: public boolean isCallConstructorOnLoad();
28:
29: /**
30: * @return true if the class should be instrumented so that the java transient keyword is honored.
31: */
32: public boolean isHonorTransient();
33:
34: /**
35: * @return true if the class should be instrumented so that the java volatile keyword is honored.
36: */
37: public boolean isHonorVolatile();
38:
39: /**
40: * @return true if the class name matches this descriptor.
41: */
42: public boolean matches(ClassInfo classInfo);
43:
44: /**
45: * @return true if this is an explicit include, false otherwise. It is possible for both isInclude() and isExclude()
46: * to return false in the case of the null implementation. This means that it is the default policy and wasn't
47: * explicity defined as an include or an exclude.
48: */
49: public boolean isInclude();
50:
51: /**
52: * @return true if this is an explicit exclude, false otherwise. It is possible for both isInclude() and isExclude()
53: * to return false in the case of the null implementation. This means that it is the default policy and wasn't
54: * explicity defined as an include or an exclude.
55: */
56: public boolean isExclude();
57:
58: }
|