From 048338efa44abaad753fc8e2e45269d9c694a705 Mon Sep 17 00:00:00 2001 From: Mark Johnson Date: Wed, 17 May 2006 00:46:56 +0000 Subject: [PATCH] Pulled out functionality to allow overriding. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4123 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../stage/util/PlacementConstraints.java | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/java/com/threerings/stage/util/PlacementConstraints.java b/src/java/com/threerings/stage/util/PlacementConstraints.java index 4a9b9e5e3..8e6115285 100644 --- a/src/java/com/threerings/stage/util/PlacementConstraints.java +++ b/src/java/com/threerings/stage/util/PlacementConstraints.java @@ -130,18 +130,34 @@ public class PlacementConstraints } } - ObjectData[] removedData = new ObjectData[removed.length]; - for (int i = 0; i < removed.length; i++) { - removedData[i] = (ObjectData)_objectData.get(removed[i]); - if (removedData[i] == null) { - Log.warning("Couldn't match object info up to data [info=" + - removed[i] + "]."); - return INTERNAL_ERROR; - } + ObjectData[] removedData = getObjectDataFromInfo(removed); + if (removedData == null) { + return INTERNAL_ERROR; } return allowModifyObjects(addedData, removedData); } + + /** + * Returns an ObjectData array that corresponds to the supplied + * ObjectInfo array. Returns null on error. + */ + protected ObjectData[] getObjectDataFromInfo (ObjectInfo[] info) + { + if (info == null) { + return null; + } + ObjectData[] data = new ObjectData[info.length]; + for (int ii = 0; ii < info.length; ii++) { + data[ii] = (ObjectData)_objectData.get(info[ii]); + if (data[ii] == null) { + Log.warning("Couldn't match object info up to data [info=" + + info[ii] + "]."); + return null; + } + } + return data; + } /** * Determines whether the constraints allow the specified objects to be