|
Lines 15-21
Link Here
|
| 15 |
* 04/05/2011-2.3 Guy Pelletier |
15 |
* 04/05/2011-2.3 Guy Pelletier |
| 16 |
* - 337323: Multi-tenant with shared schema support (part 3) |
16 |
* - 337323: Multi-tenant with shared schema support (part 3) |
| 17 |
* 06/30/2011-2.3.1 Guy Pelletier |
17 |
* 06/30/2011-2.3.1 Guy Pelletier |
| 18 |
* - 341940: Add disable/enable allowing native queries |
18 |
* - 341940: Add disable/enable allowing native queries |
|
|
19 |
* 08/18/2011-2.3.1 Guy Pelletier |
| 20 |
* - 355093: Add new 'includeCriteria' flag to Multitenant metadata |
| 19 |
******************************************************************************/ |
21 |
******************************************************************************/ |
| 20 |
package org.eclipse.persistence.internal.jpa.metadata.multitenant; |
22 |
package org.eclipse.persistence.internal.jpa.metadata.multitenant; |
| 21 |
|
23 |
|
|
Lines 51-56
Link Here
|
| 51 |
* @since EclipseLink 2.3 |
53 |
* @since EclipseLink 2.3 |
| 52 |
*/ |
54 |
*/ |
| 53 |
public class MultitenantMetadata extends ORMetadata { |
55 |
public class MultitenantMetadata extends ORMetadata { |
|
|
56 |
private Boolean m_includeCriteria; |
| 54 |
private List<TenantDiscriminatorColumnMetadata> m_tenantDiscriminatorColumns = new ArrayList<TenantDiscriminatorColumnMetadata>(); |
57 |
private List<TenantDiscriminatorColumnMetadata> m_tenantDiscriminatorColumns = new ArrayList<TenantDiscriminatorColumnMetadata>(); |
| 55 |
private String m_type; |
58 |
private String m_type; |
| 56 |
|
59 |
|
|
Lines 70-75
Link Here
|
| 70 |
super(multitenant, accessor); |
73 |
super(multitenant, accessor); |
| 71 |
|
74 |
|
| 72 |
m_type = (String) multitenant.getAttribute("value"); |
75 |
m_type = (String) multitenant.getAttribute("value"); |
|
|
76 |
m_includeCriteria = (Boolean) multitenant.getAttributeBooleanDefaultTrue("includeCriteria"); |
| 73 |
|
77 |
|
| 74 |
// Look for a @TenantDiscriminators |
78 |
// Look for a @TenantDiscriminators |
| 75 |
if (accessor.isAnnotationPresent(TenantDiscriminatorColumns.class)) { |
79 |
if (accessor.isAnnotationPresent(TenantDiscriminatorColumns.class)) { |
|
Lines 95-100
Link Here
|
| 95 |
if (! valuesMatch(m_type, multitenant.getType())) { |
99 |
if (! valuesMatch(m_type, multitenant.getType())) { |
| 96 |
return false; |
100 |
return false; |
| 97 |
} |
101 |
} |
|
|
102 |
|
| 103 |
if (! valuesMatch(m_includeCriteria, multitenant.getIncludeCriteria())) { |
| 104 |
return false; |
| 105 |
} |
| 98 |
|
106 |
|
| 99 |
return valuesMatch(m_tenantDiscriminatorColumns, multitenant.getTenantDiscriminatorColumns()); |
107 |
return valuesMatch(m_tenantDiscriminatorColumns, multitenant.getTenantDiscriminatorColumns()); |
| 100 |
} |
108 |
} |
|
Lines 106-111
Link Here
|
| 106 |
* INTERNAL: |
114 |
* INTERNAL: |
| 107 |
* Used for OX mapping. |
115 |
* Used for OX mapping. |
| 108 |
*/ |
116 |
*/ |
|
|
117 |
public Boolean getIncludeCriteria() { |
| 118 |
return m_includeCriteria; |
| 119 |
} |
| 120 |
|
| 121 |
/** |
| 122 |
* INTERNAL: |
| 123 |
* Used for OX mapping. |
| 124 |
*/ |
| 109 |
public List<TenantDiscriminatorColumnMetadata> getTenantDiscriminatorColumns() { |
125 |
public List<TenantDiscriminatorColumnMetadata> getTenantDiscriminatorColumns() { |
| 110 |
return m_tenantDiscriminatorColumns; |
126 |
return m_tenantDiscriminatorColumns; |
| 111 |
} |
127 |
} |
|
Lines 121-126
Link Here
|
| 121 |
/** |
137 |
/** |
| 122 |
* INTERNAL: |
138 |
* INTERNAL: |
| 123 |
*/ |
139 |
*/ |
|
|
140 |
public boolean includeCriteria() { |
| 141 |
return m_includeCriteria == null || m_includeCriteria.booleanValue(); |
| 142 |
} |
| 143 |
|
| 144 |
/** |
| 145 |
* INTERNAL: |
| 146 |
*/ |
| 124 |
@Override |
147 |
@Override |
| 125 |
public void initXMLObject(MetadataAccessibleObject accessibleObject, XMLEntityMappings entityMappings) { |
148 |
public void initXMLObject(MetadataAccessibleObject accessibleObject, XMLEntityMappings entityMappings) { |
| 126 |
super.initXMLObject(accessibleObject, entityMappings); |
149 |
super.initXMLObject(accessibleObject, entityMappings); |
|
Lines 199-210
Link Here
|
| 199 |
for (TenantDiscriminatorColumnMetadata tenantDiscriminator : m_tenantDiscriminatorColumns) { |
222 |
for (TenantDiscriminatorColumnMetadata tenantDiscriminator : m_tenantDiscriminatorColumns) { |
| 200 |
tenantDiscriminator.process(descriptor); |
223 |
tenantDiscriminator.process(descriptor); |
| 201 |
} |
224 |
} |
|
|
225 |
|
| 226 |
// Set the include criteria flag on the query manager. |
| 227 |
descriptor.getClassDescriptor().getDescriptorQueryManager().setIncludeTenantCriteria(includeCriteria()); |
| 202 |
} |
228 |
} |
| 203 |
|
229 |
|
| 204 |
/** |
230 |
/** |
| 205 |
* INTERNAL: |
231 |
* INTERNAL: |
| 206 |
* Used for OX mapping. |
232 |
* Used for OX mapping. |
| 207 |
*/ |
233 |
*/ |
|
|
234 |
public void setIncludeCriteria(Boolean includeCriteria) { |
| 235 |
m_includeCriteria = includeCriteria; |
| 236 |
} |
| 237 |
|
| 238 |
/** |
| 239 |
* INTERNAL: |
| 240 |
* Used for OX mapping. |
| 241 |
*/ |
| 208 |
public void setTenantDiscriminatorColumns(List<TenantDiscriminatorColumnMetadata> tenantDiscriminatorColumns) { |
242 |
public void setTenantDiscriminatorColumns(List<TenantDiscriminatorColumnMetadata> tenantDiscriminatorColumns) { |
| 209 |
m_tenantDiscriminatorColumns = tenantDiscriminatorColumns; |
243 |
m_tenantDiscriminatorColumns = tenantDiscriminatorColumns; |
| 210 |
} |
244 |
} |