Fix inconsistent whitespace
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1612219 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
3db4f0b82c
commit
79f3f4bb06
@ -35,36 +35,36 @@ import org.apache.poi.util.Internal;
|
|||||||
@Internal
|
@Internal
|
||||||
public final class CollaboratingWorkbooksEnvironment {
|
public final class CollaboratingWorkbooksEnvironment {
|
||||||
|
|
||||||
public static final class WorkbookNotFoundException extends Exception {
|
public static final class WorkbookNotFoundException extends Exception {
|
||||||
private static final long serialVersionUID = 8787784539811167941L;
|
private static final long serialVersionUID = 8787784539811167941L;
|
||||||
|
|
||||||
WorkbookNotFoundException(String msg) {
|
WorkbookNotFoundException(String msg) {
|
||||||
super(msg);
|
super(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final CollaboratingWorkbooksEnvironment EMPTY = new CollaboratingWorkbooksEnvironment();
|
public static final CollaboratingWorkbooksEnvironment EMPTY = new CollaboratingWorkbooksEnvironment();
|
||||||
|
|
||||||
private final Map<String, WorkbookEvaluator> _evaluatorsByName;
|
private final Map<String, WorkbookEvaluator> _evaluatorsByName;
|
||||||
private final WorkbookEvaluator[] _evaluators;
|
private final WorkbookEvaluator[] _evaluators;
|
||||||
|
|
||||||
private boolean _unhooked;
|
private boolean _unhooked;
|
||||||
private CollaboratingWorkbooksEnvironment() {
|
private CollaboratingWorkbooksEnvironment() {
|
||||||
_evaluatorsByName = Collections.emptyMap();
|
_evaluatorsByName = Collections.emptyMap();
|
||||||
_evaluators = new WorkbookEvaluator[0];
|
_evaluators = new WorkbookEvaluator[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setup(String[] workbookNames, WorkbookEvaluator[] evaluators) {
|
public static void setup(String[] workbookNames, WorkbookEvaluator[] evaluators) {
|
||||||
int nItems = workbookNames.length;
|
int nItems = workbookNames.length;
|
||||||
if (evaluators.length != nItems) {
|
if (evaluators.length != nItems) {
|
||||||
throw new IllegalArgumentException("Number of workbook names is " + nItems
|
throw new IllegalArgumentException("Number of workbook names is " + nItems
|
||||||
+ " but number of evaluators is " + evaluators.length);
|
+ " but number of evaluators is " + evaluators.length);
|
||||||
}
|
}
|
||||||
if (nItems < 1) {
|
if (nItems < 1) {
|
||||||
throw new IllegalArgumentException("Must provide at least one collaborating worbook");
|
throw new IllegalArgumentException("Must provide at least one collaborating worbook");
|
||||||
}
|
}
|
||||||
new CollaboratingWorkbooksEnvironment(workbookNames, evaluators, nItems);
|
new CollaboratingWorkbooksEnvironment(workbookNames, evaluators, nItems);
|
||||||
}
|
}
|
||||||
public static void setup(Map<String,WorkbookEvaluator> evaluatorsByName) {
|
public static void setup(Map<String,WorkbookEvaluator> evaluatorsByName) {
|
||||||
if (evaluatorsByName.size() < 1) {
|
if (evaluatorsByName.size() < 1) {
|
||||||
throw new IllegalArgumentException("Must provide at least one collaborating worbook");
|
throw new IllegalArgumentException("Must provide at least one collaborating worbook");
|
||||||
@ -74,28 +74,28 @@ public final class CollaboratingWorkbooksEnvironment {
|
|||||||
new CollaboratingWorkbooksEnvironment(evaluatorsByName, evaluators);
|
new CollaboratingWorkbooksEnvironment(evaluatorsByName, evaluators);
|
||||||
}
|
}
|
||||||
|
|
||||||
private CollaboratingWorkbooksEnvironment(String[] workbookNames, WorkbookEvaluator[] evaluators, int nItems) {
|
private CollaboratingWorkbooksEnvironment(String[] workbookNames, WorkbookEvaluator[] evaluators, int nItems) {
|
||||||
this(toUniqueMap(workbookNames, evaluators, nItems), evaluators);
|
this(toUniqueMap(workbookNames, evaluators, nItems), evaluators);
|
||||||
}
|
}
|
||||||
private static Map<String, WorkbookEvaluator> toUniqueMap(String[] workbookNames, WorkbookEvaluator[] evaluators, int nItems) {
|
private static Map<String, WorkbookEvaluator> toUniqueMap(String[] workbookNames, WorkbookEvaluator[] evaluators, int nItems) {
|
||||||
Map<String, WorkbookEvaluator> evaluatorsByName = new HashMap<String, WorkbookEvaluator>(nItems * 3 / 2);
|
Map<String, WorkbookEvaluator> evaluatorsByName = new HashMap<String, WorkbookEvaluator>(nItems * 3 / 2);
|
||||||
for(int i=0; i<nItems; i++) {
|
for(int i=0; i<nItems; i++) {
|
||||||
String wbName = workbookNames[i];
|
String wbName = workbookNames[i];
|
||||||
WorkbookEvaluator wbEval = evaluators[i];
|
WorkbookEvaluator wbEval = evaluators[i];
|
||||||
if (evaluatorsByName.containsKey(wbName)) {
|
if (evaluatorsByName.containsKey(wbName)) {
|
||||||
throw new IllegalArgumentException("Duplicate workbook name '" + wbName + "'");
|
throw new IllegalArgumentException("Duplicate workbook name '" + wbName + "'");
|
||||||
}
|
}
|
||||||
evaluatorsByName.put(wbName, wbEval);
|
evaluatorsByName.put(wbName, wbEval);
|
||||||
}
|
}
|
||||||
return evaluatorsByName;
|
return evaluatorsByName;
|
||||||
}
|
}
|
||||||
private CollaboratingWorkbooksEnvironment(Map<String, WorkbookEvaluator> evaluatorsByName, WorkbookEvaluator[] evaluators) {
|
private CollaboratingWorkbooksEnvironment(Map<String, WorkbookEvaluator> evaluatorsByName, WorkbookEvaluator[] evaluators) {
|
||||||
IdentityHashMap<WorkbookEvaluator, String> uniqueEvals = new IdentityHashMap<WorkbookEvaluator, String>(evaluators.length);
|
IdentityHashMap<WorkbookEvaluator, String> uniqueEvals = new IdentityHashMap<WorkbookEvaluator, String>(evaluators.length);
|
||||||
for (String wbName : evaluatorsByName.keySet()) {
|
for (String wbName : evaluatorsByName.keySet()) {
|
||||||
WorkbookEvaluator wbEval = evaluatorsByName.get(wbName);
|
WorkbookEvaluator wbEval = evaluatorsByName.get(wbName);
|
||||||
if (uniqueEvals.containsKey(wbEval)) {
|
if (uniqueEvals.containsKey(wbEval)) {
|
||||||
String msg = "Attempted to register same workbook under names '"
|
String msg = "Attempted to register same workbook under names '" +
|
||||||
+ uniqueEvals.get(wbEval) + "' and '" + wbName + "'";
|
uniqueEvals.get(wbEval) + "' and '" + wbName + "'";
|
||||||
throw new IllegalArgumentException(msg);
|
throw new IllegalArgumentException(msg);
|
||||||
}
|
}
|
||||||
uniqueEvals.put(wbEval, wbName);
|
uniqueEvals.put(wbEval, wbName);
|
||||||
@ -107,79 +107,78 @@ public final class CollaboratingWorkbooksEnvironment {
|
|||||||
_evaluatorsByName = evaluatorsByName;
|
_evaluatorsByName = evaluatorsByName;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void hookNewEnvironment(WorkbookEvaluator[] evaluators, CollaboratingWorkbooksEnvironment env) {
|
private static void hookNewEnvironment(WorkbookEvaluator[] evaluators, CollaboratingWorkbooksEnvironment env) {
|
||||||
|
// All evaluators will need to share the same cache.
|
||||||
|
// but the cache takes an optional evaluation listener.
|
||||||
|
int nItems = evaluators.length;
|
||||||
|
IEvaluationListener evalListener = evaluators[0].getEvaluationListener();
|
||||||
|
// make sure that all evaluators have the same listener
|
||||||
|
for(int i=0; i<nItems; i++) {
|
||||||
|
if(evalListener != evaluators[i].getEvaluationListener()) {
|
||||||
|
// This would be very complex to support
|
||||||
|
throw new RuntimeException("Workbook evaluators must all have the same evaluation listener");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EvaluationCache cache = new EvaluationCache(evalListener);
|
||||||
|
|
||||||
// All evaluators will need to share the same cache.
|
for(int i=0; i<nItems; i++) {
|
||||||
// but the cache takes an optional evaluation listener.
|
evaluators[i].attachToEnvironment(env, cache, i);
|
||||||
int nItems = evaluators.length;
|
}
|
||||||
IEvaluationListener evalListener = evaluators[0].getEvaluationListener();
|
}
|
||||||
// make sure that all evaluators have the same listener
|
|
||||||
for(int i=0; i<nItems; i++) {
|
|
||||||
if(evalListener != evaluators[i].getEvaluationListener()) {
|
|
||||||
// This would be very complex to support
|
|
||||||
throw new RuntimeException("Workbook evaluators must all have the same evaluation listener");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
EvaluationCache cache = new EvaluationCache(evalListener);
|
|
||||||
|
|
||||||
for(int i=0; i<nItems; i++) {
|
/**
|
||||||
evaluators[i].attachToEnvironment(env, cache, i);
|
* Completely dismantles all workbook environments that the supplied evaluators are part of
|
||||||
}
|
*/
|
||||||
}
|
private void unhookOldEnvironments(WorkbookEvaluator[] evaluators) {
|
||||||
|
Set<CollaboratingWorkbooksEnvironment> oldEnvs = new HashSet<CollaboratingWorkbooksEnvironment>();
|
||||||
|
for(int i=0; i<evaluators.length; i++) {
|
||||||
|
oldEnvs.add(evaluators[i].getEnvironment());
|
||||||
|
}
|
||||||
|
CollaboratingWorkbooksEnvironment[] oldCWEs = new CollaboratingWorkbooksEnvironment[oldEnvs.size()];
|
||||||
|
oldEnvs.toArray(oldCWEs);
|
||||||
|
for (int i = 0; i < oldCWEs.length; i++) {
|
||||||
|
oldCWEs[i].unhook();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Completely dismantles all workbook environments that the supplied evaluators are part of
|
* Tell all contained evaluators that this environment should be discarded
|
||||||
*/
|
*/
|
||||||
private void unhookOldEnvironments(WorkbookEvaluator[] evaluators) {
|
private void unhook() {
|
||||||
Set<CollaboratingWorkbooksEnvironment> oldEnvs = new HashSet<CollaboratingWorkbooksEnvironment>();
|
if (_evaluators.length < 1) {
|
||||||
for(int i=0; i<evaluators.length; i++) {
|
// Never dismantle the EMPTY environment
|
||||||
oldEnvs.add(evaluators[i].getEnvironment());
|
return;
|
||||||
}
|
}
|
||||||
CollaboratingWorkbooksEnvironment[] oldCWEs = new CollaboratingWorkbooksEnvironment[oldEnvs.size()];
|
for (int i = 0; i < _evaluators.length; i++) {
|
||||||
oldEnvs.toArray(oldCWEs);
|
_evaluators[i].detachFromEnvironment();
|
||||||
for (int i = 0; i < oldCWEs.length; i++) {
|
}
|
||||||
oldCWEs[i].unhook();
|
_unhooked = true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
public WorkbookEvaluator getWorkbookEvaluator(String workbookName) throws WorkbookNotFoundException {
|
||||||
* Tell all contained evaluators that this environment should be discarded
|
if (_unhooked) {
|
||||||
*/
|
throw new IllegalStateException("This environment has been unhooked");
|
||||||
private void unhook() {
|
}
|
||||||
if (_evaluators.length < 1) {
|
WorkbookEvaluator result = _evaluatorsByName.get(workbookName);
|
||||||
// Never dismantle the EMPTY environment
|
if (result == null) {
|
||||||
return;
|
StringBuffer sb = new StringBuffer(256);
|
||||||
}
|
sb.append("Could not resolve external workbook name '").append(workbookName).append("'.");
|
||||||
for (int i = 0; i < _evaluators.length; i++) {
|
if (_evaluators.length < 1) {
|
||||||
_evaluators[i].detachFromEnvironment();
|
sb.append(" Workbook environment has not been set up.");
|
||||||
}
|
} else {
|
||||||
_unhooked = true;
|
sb.append(" The following workbook names are valid: (");
|
||||||
}
|
Iterator<String> i = _evaluatorsByName.keySet().iterator();
|
||||||
|
int count=0;
|
||||||
public WorkbookEvaluator getWorkbookEvaluator(String workbookName) throws WorkbookNotFoundException {
|
while(i.hasNext()) {
|
||||||
if (_unhooked) {
|
if (count++>0) {
|
||||||
throw new IllegalStateException("This environment has been unhooked");
|
sb.append(", ");
|
||||||
}
|
}
|
||||||
WorkbookEvaluator result = _evaluatorsByName.get(workbookName);
|
sb.append("'").append(i.next()).append("'");
|
||||||
if (result == null) {
|
}
|
||||||
StringBuffer sb = new StringBuffer(256);
|
sb.append(")");
|
||||||
sb.append("Could not resolve external workbook name '").append(workbookName).append("'.");
|
}
|
||||||
if (_evaluators.length < 1) {
|
throw new WorkbookNotFoundException(sb.toString());
|
||||||
sb.append(" Workbook environment has not been set up.");
|
}
|
||||||
} else {
|
return result;
|
||||||
sb.append(" The following workbook names are valid: (");
|
}
|
||||||
Iterator<String> i = _evaluatorsByName.keySet().iterator();
|
|
||||||
int count=0;
|
|
||||||
while(i.hasNext()) {
|
|
||||||
if (count++>0) {
|
|
||||||
sb.append(", ");
|
|
||||||
}
|
|
||||||
sb.append("'").append(i.next()).append("'");
|
|
||||||
}
|
|
||||||
sb.append(")");
|
|
||||||
}
|
|
||||||
throw new WorkbookNotFoundException(sb.toString());
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user