173 |
173 |
public void consolide() {
|
174 |
174 |
// Use classes and decalredFieldsMap to update all.
|
175 |
175 |
|
176 |
|
// Actualize superClasses array
|
|
176 |
// Updates superClasses array
|
177 |
177 |
this.superClasses =
|
178 |
178 |
(DefaultDynClass[]) buildSuperDynClassSet().toArray(
|
179 |
179 |
new DefaultDynClass[] {});
|
180 |
180 |
|
181 |
|
// Actualize declaredFields array
|
|
181 |
// Updates declaredFields array
|
182 |
182 |
this.declaredFields =
|
183 |
183 |
(DynField[]) this.declaredFieldsMap.values().toArray(
|
184 |
184 |
new DynField[] {});
|
185 |
185 |
|
186 |
|
// Actualize declaredMethods array
|
|
186 |
// Updates declaredMethods array
|
187 |
187 |
this.declaredMethods =
|
188 |
188 |
(DynMethod[]) this.declaredMethodsMap.values().toArray(
|
189 |
189 |
new DynMethod[] {});
|
190 |
190 |
|
191 |
|
// Actualize fieldsMap
|
|
191 |
// Updates fieldsMap
|
192 |
192 |
this.fieldsMap = new LinkedHashMap();
|
193 |
193 |
int index = 0;
|
194 |
194 |
for (int i = 0; i < this.declaredFields.length; i++) {
|
... | ... | |
207 |
207 |
}
|
208 |
208 |
}
|
209 |
209 |
|
210 |
|
// Actualize methodsMap
|
|
210 |
// Updates methodsMap
|
211 |
211 |
this.methodsMap = new LinkedHashMap();
|
212 |
212 |
index = 0;
|
213 |
213 |
for (int i = 0; i < this.declaredMethods.length; i++) {
|
... | ... | |
226 |
226 |
}
|
227 |
227 |
}
|
228 |
228 |
|
229 |
|
// Actualize fields array
|
|
229 |
// Updates fields array
|
230 |
230 |
this.fields = new DynField[this.fieldsMap.size()];
|
231 |
231 |
int i = 0;
|
232 |
232 |
Iterator it = this.fieldsMap.values().iterator();
|
... | ... | |
236 |
236 |
fields[i++] = field;
|
237 |
237 |
}
|
238 |
238 |
|
239 |
|
// Actualize methods array
|
|
239 |
// Updates methods array
|
240 |
240 |
this.methods = new DynMethod[this.methodsMap.size()];
|
241 |
241 |
i = 0;
|
242 |
242 |
it = this.methodsMap.values().iterator();
|
... | ... | |
246 |
246 |
methods[i++] = method;
|
247 |
247 |
}
|
248 |
248 |
|
249 |
|
// Actualize superClassesMap
|
|
249 |
// Updates superClassesMap
|
250 |
250 |
this.superClassesMap = new HashMap();
|
251 |
251 |
for (i = 0; i < this.superClasses.length; i++) {
|
252 |
252 |
this.superClassesMap.put(this.superClasses[i].getFullName(),
|
... | ... | |
310 |
310 |
return extended;
|
311 |
311 |
}
|
312 |
312 |
|
|
313 |
public void extendAll(String[] structNames){
|
|
314 |
if (structNames == null)
|
|
315 |
return;
|
313 |
316 |
|
|
317 |
for (int i=0;i<structNames.length;i++){
|
|
318 |
DynStruct dynStruct = manager.get(structNames[i]);
|
|
319 |
if (dynStruct == null) {
|
|
320 |
throw new DynClassNotFoundException(structNames[i]);
|
|
321 |
}
|
|
322 |
if (this.classes.containsKey(dynStruct.getFullName())) {
|
|
323 |
continue;
|
|
324 |
}
|
|
325 |
this.classes.put(dynStruct.getFullName(), dynStruct);
|
|
326 |
}
|
|
327 |
|
|
328 |
this.forceConsolide();
|
|
329 |
}
|
|
330 |
|
314 |
331 |
public void extend(DynStruct dynStruct) {
|
315 |
332 |
if (this.classes.containsKey(dynStruct.getFullName())) {
|
316 |
333 |
return;
|
... | ... | |
319 |
336 |
this.forceConsolide();
|
320 |
337 |
}
|
321 |
338 |
|
322 |
|
public void extend(String structame) {
|
323 |
|
DynClass dynClass = manager.get(structame);
|
|
339 |
public void extend(String structName) {
|
|
340 |
DynClass dynClass = manager.get(structName);
|
324 |
341 |
if (dynClass == null) {
|
325 |
|
throw new DynClassNotFoundException(structame);
|
|
342 |
throw new DynClassNotFoundException(structName);
|
326 |
343 |
}
|
327 |
344 |
extend(dynClass);
|
328 |
345 |
}
|
... | ... | |
497 |
514 |
|
498 |
515 |
public void removeDynMethod(String name) {
|
499 |
516 |
// TODO Auto-generated method stub
|
500 |
|
|
501 |
517 |
}
|
502 |
518 |
|
503 |
519 |
public void validate(DynObject object) throws DynObjectValidateException {
|
... | ... | |
730 |
746 |
Set superClassesSet = buildSuperDynClassSet();
|
731 |
747 |
return isExtendable(superClassesSet, dynStruct);
|
732 |
748 |
}
|
|
749 |
|
|
750 |
private void removeDynStruct(DynStruct superDynStruct) {
|
|
751 |
if (!this.classes.containsKey(superDynStruct.getFullName())) {
|
|
752 |
this.classes.remove(superDynStruct.getFullName());
|
|
753 |
}
|
|
754 |
}
|
|
755 |
|
|
756 |
public void remove(DynStruct superDynStruct) {
|
|
757 |
if (superDynStruct!=null){
|
|
758 |
this.removeDynStruct(superDynStruct);
|
|
759 |
this.consolide();
|
|
760 |
}
|
|
761 |
}
|
|
762 |
|
|
763 |
public void removeAll(DynStruct[] superDynStruct){
|
|
764 |
if (superDynStruct!=null){
|
|
765 |
for (int i=0; i<superDynStruct.length;i++){
|
|
766 |
removeDynStruct(superDynStruct[i]);
|
|
767 |
}
|
|
768 |
this.consolide();
|
|
769 |
}
|
|
770 |
}
|
|
771 |
|
|
772 |
public void extend(DynStruct[] structs) {
|
|
773 |
if (structs!=null){
|
|
774 |
for (int i=0; i<structs.length;i++){
|
|
775 |
extend(structs[i]);
|
|
776 |
}
|
|
777 |
this.consolide();
|
|
778 |
}
|
|
779 |
}
|
733 |
780 |
}
|