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
|
package org.litesoft.orsup.base;
import org.litesoft.bo.attributes.*;
import org.litesoft.orsup.lazyload.*;
import org.litesoft.orsup.nonpublic.*;
import org.litesoft.orsup.otherattributeaccessors.*;
import org.litesoft.util.*;
public abstract class AbstractAttributeAccessorSCDtoOne<Owner extends PersistentObjectImpl, Them extends PersistentObjectImpl>
extends AbstractAttributeAccessorSCDtoPO<Owner, Them>
{
private String mToOneKeyAttribute;
protected AbstractAttributeAccessorSCDtoOne( String pName, String pColumnName, String pToThemName, String pToOneKeyAttribute, String pBackReference,
boolean pThemDependantOnUs, boolean pRequired, AttributeMetaData pAMD )
{
super( pName, pColumnName, pToThemName, pBackReference, pThemDependantOnUs, pRequired, pAMD );
mToOneKeyAttribute = pToOneKeyAttribute;
}
public Form getForm()
{
return Form.ToOne;
}
public final String getToOneKeyAttribute()
{
return mToOneKeyAttribute;
}
abstract public AbstractLazyLoadToOne<Owner, Them> getValueHolder( Owner pPO );
public boolean changedPOflagsPeerChanged()
{
return false;
}
public boolean changedPOflagsPeerChangeNotification()
{
return false;
}
public static AbstractAttributeAccessorSCDtoOne[] append( AbstractAttributeAccessorSCDtoOne[] pOrig, AbstractAttributeAccessorSCDtoOne pNew )
{
if ( pNew == null )
{
return pOrig;
}
if ( Utils.isNullOrEmpty( pOrig ) )
{
return new AbstractAttributeAccessorSCDtoOne[]{pNew};
}
AbstractAttributeAccessorSCDtoOne[] newArray = new AbstractAttributeAccessorSCDtoOne[pOrig.length + 1];
System.arraycopy( pOrig, 0, newArray, 0, pOrig.length );
newArray[pOrig.length] = pNew;
return newArray;
}
/**
* Intended mainly for cleaning up after junit tests that might dynamically insert attributes
*/
public static AbstractAttributeAccessorSCDtoOne[] remove( AbstractAttributeAccessorSCDtoOne[] pOrig,
AttributeAccessorSCD pToRemove )
{
if ( (pToRemove != null) && !Utils.isNullOrEmpty( pOrig ) )
{
for ( int i = 0; i < pOrig.length; i++ )
{
if ( pToRemove.getName().equals( pOrig[i].getName() ) )
{
return remove( pOrig, i );
}
}
}
return pOrig;
}
private static AbstractAttributeAccessorSCDtoOne[] remove( AbstractAttributeAccessorSCDtoOne[] pOrig,
int pToRemove )
{
AbstractAttributeAccessorSCDtoOne[] newArray =
new AbstractAttributeAccessorSCDtoOne[pOrig.length - 1];
int zDst = 0;
for ( int zSrc = 0; zSrc < pOrig.length; zSrc++ )
{
if ( zSrc != pToRemove )
{
newArray[zDst++] = pOrig[zSrc];
}
}
return newArray;
}
}
|