Skip to main content
summaryrefslogtreecommitdiffstats
blob: 77df7e9deedec87d1416bebbdaee7aebadbe2c8d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
/*******************************************************************************
 * Copyright (c) 2001, 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.jem.internal.proxy.core;
/*


 */

import java.util.Set;
/**
 * The standard bean type proxy factory.
 * This is the Interface that the desktop will talk
 * to, the one that is returned when getCurrent() is called.
 * Creation date: (3/10/00 11:00:50 AM)
 * @author: Richard Lee Kulp
 */
public interface IStandardBeanTypeProxyFactory extends IBeanProxyFactory {
	
/**
 * Used by other registered bean type proxy factories to
 * register their bean type proxies with the standard factory
 * so that it will be cached there. 
 * <p><b>Note:</b> This is not meant to be called by customers. It is here for the usage
 * of registry extensions.
 * @param aBeanTypeProxy
 * @param permanent indicates that beantype will never be released,
 * not even if explicit request is made.
 * 
 * @since 1.1.0
 */
void registerBeanTypeProxy(IBeanTypeProxy aBeanTypeProxy, boolean permanent);

/**
 * Used by other registered bean type proxy factories to
 * register their proxy bean type with the standard factory
 * so that it will be cached there. 
 * <p><b>Note:</b> This is not meant to be called by customers. It is here for the usage
 * of registry extensions.
 * @param aBeanTypeProxy
 * @param permanent indicates that beantype will never be released,
 * not even if explicit request is made.
 * 
 * @since 1.1.0
 */
void registerBeanTypeProxy(IProxyBeanType aBeanTypeProxy, boolean permanent);

/**
 * Return the beanType proxy for the given class name.
 * It must be fully qualified. And for arrays it can handle
 * either the jni type ([Ljava.lang.Object;) or the Java EMF Model
 * formal type (java.lang.Object[]).
 */
IBeanTypeProxy getBeanTypeProxy(String className);

/**
 * Get the beantype proxy suitable for an expression.
 * 
 * @param expression
 * @param typeName
 * @return
 * 
 * @since 1.1.0
 */
IProxyBeanType getBeanTypeProxy(IExpression expression, String typeName);

/**
 * Return an Array type proxy for the given class name of
 * the specified dimensions. This is a helper method. The
 * same result can be gotton from getBeanTypeProxy.
 * e.g.
 *      getBeanTypeProxy("java.lang.Object", 3)
 *    is the same as:
 *      getBeanTypeProxy("[[[Ljava.lang.Object;")
 *
 *    They both result in a type of:
 *      Object [][][]
 * 
 *    or if using the JNI format (proxy format)
 *      getBeanTypeProxy("[Ljava.langObject;", 3)
 *    becomes
 *      Object [][][][] 
 * 
 *    or if using the standard java format (as in actual code)
 *      getBeanTypeProxy("java.langObject[];", 3)
 *    becomes
 *      Object [][][][]
 */
IBeanTypeProxy getBeanTypeProxy(String componentClassName, int dimensions);

/**
 * Return an Array type proxy for the given class name of
 * the specified dimensions. This is a helper method. The
 * same result can be gotton from getBeanTypeProxy.
 * e.g.
 *      getBeanTypeProxy("java.lang.Object", 3)
 *    is the same as:
 *      getBeanTypeProxy("[[[Ljava.lang.Object;")
 *
 *    They both result in a type of:
 *      Object [][][]
 * 
 *    or if using the JNI format (proxy format)
 *      getBeanTypeProxy("[Ljava.langObject;", 3)
 *    becomes
 *      Object [][][][] 
 * 
 *    or if using the standard java format (as in actual code)
 *      getBeanTypeProxy("java.langObject[];", 3)
 *    becomes
 *      Object [][][][]
 * 
 * @param expression
 * @param componentClassName
 * @param dimensions
 * @return
 * 
 * @since 1.1.0
 */
IProxyBeanType getBeanTypeProxy(IExpression expression, String componentClassName, int dimensions);

/**
 * Test if a specific bean type has been registered. Don't access and create
 * if it isn't currently registered.
 */
boolean isBeanTypeRegistered(String className);

/**
 * Registered types. Return a set of strings that are the registered classes.
 * This Set isn't synchronized, there may be changes while accessing it.
 */
Set registeredTypes();

/**
 * Maintain list of not found types. This list is types that were requested,
 * but didn't exist. This method sets whether list should be maintained or not.
 * If set to false, the list will be empty. The default is false.
 * 
 * @param maintain
 */
void setMaintainNotFoundTypes(boolean maintain);

/**
 * Maintain list of not found types. This list is types that were requested,
 * but didn't exist. This method returns whether list should be maintained or not.
 * If false, the list will be empty. The default is false.
 * 
 * @return maintaining not found types.
 */
boolean isMaintainNotFoundTypes();

/**
 * Maintain list of not found types. This list is types that were requested,
 * but didn't exist. 
 *
 * @param className Classname to search for to see if ever not found.
 * @return true if the bean type had been searched for but was not found. If not maintaining, then result will be false.
 */
boolean isBeanTypeNotFound(String className);

}

Back to the top