WIP update/refactoring on caching

This commit is contained in:
Rob Bygrave
2014-04-24 01:57:52 +12:00
parent 2dccb818a2
commit 4c4e084e43
25 changed files with 728 additions and 460 deletions
@@ -1,29 +1,61 @@
package com.avaje.ebeaninternal.server.cache;
/**
* Data held in the bean cache for cached beans.
*/
public class CachedBeanData {
private final Object sharableBean;
private final boolean[] loaded;
private final Object[] data;
private final int naturalKeyUpdate;
private final boolean naturalKeyUpdate;
private final Object naturalKey;
private final Object oldNaturalKey;
public CachedBeanData(Object sharableBean, boolean[] loaded, Object[] data, int naturalKeyUpdate) {
public CachedBeanData(Object sharableBean, boolean[] loaded, Object[] data, Object naturalKey, Object oldNaturalKey) {
this.sharableBean = sharableBean;
this.loaded = loaded;
this.data = data;
this.naturalKeyUpdate = naturalKeyUpdate;
this.naturalKeyUpdate = naturalKey != null;
this.naturalKey = (naturalKey != null) ? naturalKey : oldNaturalKey;
this.oldNaturalKey = oldNaturalKey;
}
/**
* Return a copy of the property data.
*/
public Object[] copyData() {
Object[] dest = new Object[data.length];
System.arraycopy(data, 0, dest, 0, data.length);
return dest;
}
/**
* Return a copy of the loaded status for the properties.
*/
public boolean[] copyLoaded() {
boolean[] dest = new boolean[data.length];
for (int i = 0; i < dest.length; i++) {
dest[i] = loaded[i];
}
return dest;
}
public Object getSharableBean() {
return sharableBean;
}
public boolean isNaturalKeyUpdate() {
return naturalKeyUpdate > -1;
return naturalKeyUpdate;
}
public Object getNaturalKey() {
return data[naturalKeyUpdate];
return naturalKey;
}
public Object getOldNaturalKey() {
return oldNaturalKey;
}
public boolean containsProperty(int propIndex) {
@@ -38,12 +70,6 @@ public class CachedBeanData {
return data[i];
}
public Object[] copyData() {
Object[] dest = new Object[data.length];
System.arraycopy(data, 0, dest, 0, data.length);
return dest;
}
public boolean isLoaded(int i) {
return loaded[i];
}