mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

matthew_swift
04.39.2009 c1dc04896af6ba7f93a2f38edfda93ef0f3d2a02
Remove support for schema attachments as it was not sufficient for implementing thread/schema local object caches.
1 files deleted
1 files modified
278 ■■■■■ changed files
sdk/src/org/opends/sdk/schema/Schema.java 148 ●●●●● patch | view | raw | blame | history
sdk/src/org/opends/sdk/schema/SchemaLocal.java 130 ●●●●● patch | view | raw | blame | history
sdk/src/org/opends/sdk/schema/Schema.java
@@ -61,8 +61,6 @@
{
  private static class EmptyImpl implements Impl
  {
    private final Map<SchemaLocal<?>, Object> attachments;
    private final SchemaCompatOptions options;
@@ -70,28 +68,6 @@
    private EmptyImpl()
    {
      this.options = SchemaCompatOptions.defaultOptions();
      this.attachments = new WeakHashMap<SchemaLocal<?>, Object>();
    }
    @SuppressWarnings("unchecked")
    public <T> T getAttachment(SchemaLocal<T> attachment)
    {
      T o;
      synchronized (attachments)
      {
        o = (T) attachments.get(attachment);
        if (o == null)
        {
          o = attachment.initialValue();
          if (o != null)
          {
            attachments.put(attachment, o);
          }
        }
      }
      return o;
    }
@@ -378,39 +354,12 @@
    {
      return false;
    }
    @SuppressWarnings("unchecked")
    public <T> T removeAttachment(SchemaLocal<T> attachment)
    {
      T o;
      synchronized (attachments)
      {
        o = (T) attachments.remove(attachment);
      }
      return o;
    }
    public <T> void setAttachment(SchemaLocal<T> attachment, T value)
    {
      synchronized (attachments)
      {
        attachments.put(attachment, value);
      }
    }
  }
  private static interface Impl
  {
    <T> T getAttachment(SchemaLocal<T> attachment);
    AttributeType getAttributeType(String name)
        throws UnknownSchemaElementException;
@@ -563,14 +512,6 @@
    boolean isStrict();
    <T> T removeAttachment(SchemaLocal<T> attachment);
    <T> void setAttachment(SchemaLocal<T> attachment, T value);
  }
@@ -588,13 +529,6 @@
    public <T> T getAttachment(SchemaLocal<T> attachment)
    {
      return strictImpl.getAttachment(attachment);
    }
    public AttributeType getAttributeType(String name)
        throws UnknownSchemaElementException
    {
@@ -881,28 +815,12 @@
    {
      return false;
    }
    public <T> T removeAttachment(SchemaLocal<T> attachment)
    {
      return strictImpl.removeAttachment(attachment);
    }
    public <T> void setAttachment(SchemaLocal<T> attachment, T value)
    {
      strictImpl.setAttachment(attachment, value);
    }
  }
  private static class StrictImpl implements Impl
  {
    private final Map<SchemaLocal<?>, Object> attachments;
    private final Map<Integer, DITStructureRule> id2StructureRules;
    private final Map<String, List<AttributeType>> name2AttributeTypes;
@@ -994,28 +912,6 @@
      this.nameForm2StructureRules = Collections
          .unmodifiableMap(nameForm2StructureRules);
      this.options = options;
      attachments = new WeakHashMap<SchemaLocal<?>, Object>();
    }
    @SuppressWarnings("unchecked")
    public <T> T getAttachment(SchemaLocal<T> attachment)
    {
      T o;
      synchronized (attachments)
      {
        o = (T) attachments.get(attachment);
        if (o == null)
        {
          o = attachment.initialValue();
          if (o != null)
          {
            attachments.put(attachment, o);
          }
        }
      }
      return o;
    }
@@ -1514,29 +1410,6 @@
    {
      return true;
    }
    @SuppressWarnings("unchecked")
    public <T> T removeAttachment(SchemaLocal<T> attachment)
    {
      T o;
      synchronized (attachments)
      {
        o = (T) attachments.remove(attachment);
      }
      return o;
    }
    public <T> void setAttachment(SchemaLocal<T> attachment, T value)
    {
      synchronized (attachments)
      {
        attachments.put(attachment, value);
      }
    }
  }
@@ -2503,29 +2376,8 @@
  <T> T getAttachment(SchemaLocal<T> attachment)
  {
    return impl.getAttachment(attachment);
  }
  SchemaCompatOptions getSchemaCompatOptions()
  {
    return impl.getSchemaCompatOptions();
  }
  <T> T removeAttachment(SchemaLocal<T> attachment)
  {
    return impl.removeAttachment(attachment);
  }
  <T> void setAttachment(SchemaLocal<T> attachment, T value)
  {
    impl.setAttachment(attachment, value);
  }
}
sdk/src/org/opends/sdk/schema/SchemaLocal.java
File was deleted