You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2007/08/02 17:38:48 UTC

svn commit: r562142 - in /db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb: broker/metadata/ odmg/

Author: arminw
Date: Thu Aug  2 08:38:47 2007
New Revision: 562142

URL: http://svn.apache.org/viewvc?view=rev&rev=562142
Log:
use new StateDetection enum class

Added:
    db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/StateDetection.java
Modified:
    db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/ClassDescriptor.java
    db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/DescriptorRepository.java
    db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/FieldDescriptor.java
    db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/RepositoryXmlHandler.java
    db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/odmg/ObjectEnvelope.java

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/ClassDescriptor.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/ClassDescriptor.java?view=diff&rev=562142&r1=562141&r2=562142
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/ClassDescriptor.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/ClassDescriptor.java Thu Aug  2 08:38:47 2007
@@ -198,7 +198,7 @@
      * indicate wether or not class should be included in object
      * state detection.
      */
-    private boolean stateDetection = true;
+    private StateDetection stateDetection = StateDetection.INHERIT;
     /**
      * if true instances of this class are always refreshed
      * even if they are already in the cache.
@@ -2042,27 +2042,35 @@
     }
 
     /**
-     * Returns whether or not this class should be included in
-     * object state detection. Default state is <em>true</em>.
+     * Returns the state detection status. Default state is <code>StateDetection.INHERIT</code>.
      *
-     * @return If <em>true</em> the class will be included in
-     * automatic object state detection.
-     * @see #setStateDetection(boolean)
+     * @return The state detection status.
      */
-    public boolean isStateDetection()
+    public StateDetection getStateDetection()
     {
         return stateDetection;
     }
 
     /**
      * If the used API supports object state detection (e.g. ODMG-api does),
-     * this attribute indicate whether or not this class should be included in object
-     * state detection (automatic check for changed object fields).
+     * this attribute indicate whether or not the mapped class is
+     * included in object state detection (automatic check for changed object fields).
      *
-     * @param stateDetection Set <em>true</em> if automatic state detection should
-     * be enabled.
+     * @param name Set the status of the {@link StateDetection}.
      */
-    public void setStateDetection(boolean stateDetection)
+    public void setStateDetection(String name)
+    {
+        this.stateDetection = StateDetection.getEnum(name);
+    }
+
+    /**
+     * If the used API supports object state detection (e.g. ODMG-api does),
+     * this attribute indicate whether or not the mapped class is
+     * included in object state detection (automatic check for changed object fields).
+     *
+     * @param stateDetection Set the status of the {@link StateDetection}.
+     */
+    public void setStateDetection(StateDetection stateDetection)
     {
         this.stateDetection = stateDetection;
     }

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/DescriptorRepository.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/DescriptorRepository.java?view=diff&rev=562142&r1=562141&r2=562142
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/DescriptorRepository.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/DescriptorRepository.java Thu Aug  2 08:38:47 2007
@@ -64,7 +64,7 @@
      * indicate wether or not mapped classes should be included in object
      * state detection.
      */
-    private boolean stateDetection = true;
+    private StateDetection stateDetection = StateDetection.ON;
     /**
      * This table holds all known Mapping descriptions.
      * Key values are the respective Class objects
@@ -960,29 +960,37 @@
     }
 
     /**
-     * Returns whether or not mapped classes should be included in
-     * object state detection. Default state is <em>true</em>.
+     * Returns the state detection status. Default state is <code>StateDetection.ON</code>.
      *
-     * @return If <em>true</em> the classes will be included in
-     * automatic object state detection.
-     * @see #setStateDetection(boolean)
+     * @return The state detection status.
      */
-    public boolean isStateDetection()
+    public StateDetection getStateDetection()
     {
         return stateDetection;
     }
 
     /**
      * If the used API supports object state detection (e.g. ODMG-api does),
-     * this attribute indicate whether or not this mapped classes should be
+     * this attribute indicate whether or not the mapped classes are
      * included in object state detection (automatic check for changed object fields).
      *
-     * @param stateDetection Set <em>true</em> if automatic state detection should
-     * be enabled.
+     * @param stateDetection Set the status of the {@link StateDetection}.
      */
-    public void setStateDetection(boolean stateDetection)
+    public void setStateDetection(StateDetection stateDetection)
     {
         this.stateDetection = stateDetection;
+    }
+
+    /**
+     * If the used API supports object state detection (e.g. ODMG-api does),
+     * this attribute indicate whether or not the mapped classes are
+     * included in object state detection (automatic check for changed object fields).
+     *
+     * @param name Set the status of the {@link StateDetection}.
+     */
+    public void setStateDetection(String name)
+    {
+        this.stateDetection = StateDetection.getEnum(name);
     }
 
     /**

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/FieldDescriptor.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/FieldDescriptor.java?view=diff&rev=562142&r1=562141&r2=562142
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/FieldDescriptor.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/FieldDescriptor.java Thu Aug  2 08:38:47 2007
@@ -85,7 +85,7 @@
      * indicate wether or not this field should be included in object
      * state detection.
      */
-    private boolean stateDetection = true;
+    private StateDetection stateDetection = StateDetection.INHERIT;
     private String m_access;
     private SequenceDescriptor sequenceDescriptor;
 
@@ -628,13 +628,11 @@
 
     /**
      * Returns whether or not this field should be included in
-     * object state detection. Default state is <em>true</em>.
+     * object state detection. Default state is <code>StateDetection.INHERIT</code>.
      *
-     * @return If <em>true</em> the field will be included in
-     * automatic object state detection.
-     * @see #setStateDetection(boolean)
+     * @return The state detection status.
      */
-    public boolean isStateDetection()
+    public StateDetection getStateDetection()
     {
         return stateDetection;
     }
@@ -644,9 +642,21 @@
      * this attribute indicate whether or not this field should be included in object
      * state detection (automatic check for changed object fields).
      *
-     * @param stateDetection
+     * @param name Set the status of the {@link StateDetection}.
      */
-    public void setStateDetection(boolean stateDetection)
+    public void setStateDetection(String name)
+    {
+        this.stateDetection = StateDetection.getEnum(name);
+    }
+
+    /**
+     * If the used API supports object state detection (e.g. ODMG-api does),
+     * this attribute indicate whether or not this field should be included in object
+     * state detection (automatic check for changed object fields).
+     *
+     * @param stateDetection Set the status of the {@link StateDetection}.
+     */
+    public void setStateDetection(StateDetection stateDetection)
     {
         this.stateDetection = stateDetection;
     }

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/RepositoryXmlHandler.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/RepositoryXmlHandler.java?view=diff&rev=562142&r1=562141&r2=562142
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/RepositoryXmlHandler.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/RepositoryXmlHandler.java Thu Aug  2 08:38:47 2007
@@ -178,9 +178,8 @@
                         String stateDetectionStr = atts.getValue(tags.getTagById(STATE_DETECTION));
                         if (stateDetectionStr != null)
                         {
-                            boolean stateDetection = ConvertHelper.toBooleanPrimitiv(stateDetectionStr);
-                            if (isDebug) logger.debug("     " + tags.getTagById(STATE_DETECTION) + ": " + stateDetection);
-                            m_repository.setStateDetection(stateDetection);
+                            if (isDebug) logger.debug("     " + tags.getTagById(STATE_DETECTION) + ": " + stateDetectionStr);
+                            m_repository.setStateDetection(stateDetectionStr);
                         }
 
                         break;
@@ -336,9 +335,8 @@
                         String stateDetectionStr = atts.getValue(tags.getTagById(STATE_DETECTION));
                         if (stateDetectionStr != null)
                         {
-                            boolean stateDetection = ConvertHelper.toBooleanPrimitiv(stateDetectionStr);
-                            if (isDebug) logger.debug("     " + tags.getTagById(STATE_DETECTION) + ": " + stateDetection);
-                            m_CurrentCLD.setStateDetection(stateDetection);
+                            if (isDebug) logger.debug("     " + tags.getTagById(STATE_DETECTION) + ": " + stateDetectionStr);
+                            m_CurrentCLD.setStateDetection(stateDetectionStr);
                         }
 
                         // put cld to the metadata repository
@@ -512,9 +510,8 @@
                         String stateDetectionStr = atts.getValue(tags.getTagById(STATE_DETECTION));
                         if (stateDetectionStr != null)
                         {
-                            boolean stateDetection = ConvertHelper.toBooleanPrimitiv(stateDetectionStr);
-                            if (isDebug) logger.debug("     " + tags.getTagById(STATE_DETECTION) + ": " + stateDetection);
-                            m_CurrentFLD.setStateDetection(stateDetection);
+                            if (isDebug) logger.debug("     " + tags.getTagById(STATE_DETECTION) + ": " + stateDetectionStr);
+                            m_CurrentFLD.setStateDetection(stateDetectionStr);
                         }
 
                         break;

Added: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/StateDetection.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/StateDetection.java?view=auto&rev=562142
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/StateDetection.java (added)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/metadata/StateDetection.java Thu Aug  2 08:38:47 2007
@@ -0,0 +1,112 @@
+package org.apache.ojb.broker.metadata;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Locale;
+
+import org.apache.commons.lang.enums.Enum;
+
+/**
+ * This class represents the state detection status.
+ *
+ * @version $Id$
+ */
+public class StateDetection extends Enum
+{
+    /**
+     * Enable state detection.
+     */
+    public static final StateDetection ON = new StateDetection("on");
+    /**
+     * Disable state detection.
+     */
+    public static final StateDetection OFF = new StateDetection("off");
+    /**
+     * Inherit state detection status.
+     */
+    public static final StateDetection INHERIT = new StateDetection("inherit");
+
+    private StateDetection(String name)
+    {
+        super(name);
+    }
+
+    /**
+     * Returns <em>true</em> if status is 'ON'.
+     * @return The status match result.
+     */
+    public boolean isOn()
+    {
+        return this.equals(ON);
+    }
+
+    /**
+     * Returns <em>true</em> if status is 'OFF'.
+     * @return The status match result.
+     */
+    public boolean isOff()
+    {
+        return this.equals(OFF);
+    }
+
+    /**
+     * Returns <em>true</em> if status is 'INHERIT'.
+     * @return The status match result.
+     */
+    public boolean isInherit()
+    {
+        return this.equals(INHERIT);
+    }
+
+    /**
+     * Get the state detection. Valid names are: on, off, inherit.
+     *
+     * @param name The name of the state detection status.
+     * @return The resolved {@link org.apache.ojb.broker.metadata.StateDetection}.
+     */
+    public static StateDetection getEnum(String name)
+    {
+        StateDetection result = (StateDetection) getEnum(StateDetection.class, name.toLowerCase(Locale.ENGLISH));
+        if(result == null)
+        {
+            throw new MetadataException("Specified state-dection status '" + name
+                    + "' doesn't exist, valid settings are: " + getEnumList());
+        }
+        return result;
+    }
+
+    public static Map getEnumMap()
+    {
+        return getEnumMap(StateDetection.class);
+    }
+
+    public static List getEnumList()
+    {
+        return getEnumList(StateDetection.class);
+    }
+
+    public static Iterator iterator()
+    {
+        return iterator(StateDetection.class);
+    }
+}

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/odmg/ObjectEnvelope.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/odmg/ObjectEnvelope.java?view=diff&rev=562142&r1=562141&r2=562142
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/odmg/ObjectEnvelope.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/odmg/ObjectEnvelope.java Thu Aug  2 08:38:47 2007
@@ -443,7 +443,7 @@
 
     private void buildImageForFields(Map imageMap, ClassDescriptor cld)
     {
-        if(cld.isStateDetection() && cld.getRepository().isStateDetection())
+        if(!cld.getStateDetection().isOff() && cld.getRepository().getStateDetection().isOn())
         {
             // register all non reference fields of object (with inherited fields)
             FieldDescriptor[] fieldDescs = cld.getFieldDescriptor(true);
@@ -458,7 +458,7 @@
     {
         // register copies of all fields, except the fields with
         // disbaled state detection
-        if(fld.isStateDetection())
+        if(!fld.getStateDetection().isOff())
         {
             Object value = fld.getCopyOfValue(getRealObject());
             imageMap.put(fld.getPersistentField().getName(), new Image.Field(fld.getJdbcType().getFieldType(), value));



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org