if (addr != null) {
Object oldVal = rawAccessor.getField
(entity, addr.fieldNum, addr.superLevel, addr.isSecField);
if (oldVal != null) {
if (keyElement != null) {
RawObject container = (RawObject) oldVal;
Object[] a1 = container.getElements();
boolean isArray = (a1 != null);
if (!isArray) {
a1 = CollectionProxy.getElements(container);
}
if (a1 != null) {
for (int i = 0; i < a1.length; i += 1) {
if (keyElement.equals(a1[i])) {
int len = a1.length - 1;
Object[] a2 = new Object[len];
System.arraycopy(a1, 0, a2, 0, i);
System.arraycopy(a1, i + 1, a2, i, len - i);
if (isArray) {
rawAccessor.setField
(entity, addr.fieldNum,
addr.superLevel, addr.isSecField,
new RawObject
(container.getType(), a2));
} else {
CollectionProxy.setElements(container, a2);
}
return true;
}