org.geotools.gml2
Class ReferencingDirectiveLeakPreventer

java.lang.Object
  extended by org.geotools.gml2.ReferencingDirectiveLeakPreventer
All Implemented Interfaces:
org.eclipse.emf.common.notify.Adapter

public class ReferencingDirectiveLeakPreventer
extends java.lang.Object
implements org.eclipse.emf.common.notify.Adapter

Adapter to prevent memory leaks that occur when importing a gml schema.

When an application schema imports the gml schema a link from the gml schema to the app schema is created. Since the gml schema is a singleton we store permenantly this causes a memory leak. This adapter watches the XSDSchema.getReferencingDirectives() list and ensures that it does not continue to grow by only allowing unique schema references (in terms of target namespace) to reference it.

Author:
Justin Deoliveira, OpenGeo

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.eclipse.emf.common.notify.Adapter
org.eclipse.emf.common.notify.Adapter.Internal
 
Constructor Summary
ReferencingDirectiveLeakPreventer()
           
 
Method Summary
 org.eclipse.emf.common.notify.Notifier getTarget()
           
 boolean isAdapterForType(java.lang.Object type)
           
 void notifyChanged(org.eclipse.emf.common.notify.Notification notification)
           
 void setTarget(org.eclipse.emf.common.notify.Notifier newTarget)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReferencingDirectiveLeakPreventer

public ReferencingDirectiveLeakPreventer()
Method Detail

getTarget

public org.eclipse.emf.common.notify.Notifier getTarget()
Specified by:
getTarget in interface org.eclipse.emf.common.notify.Adapter

setTarget

public void setTarget(org.eclipse.emf.common.notify.Notifier newTarget)
Specified by:
setTarget in interface org.eclipse.emf.common.notify.Adapter

isAdapterForType

public boolean isAdapterForType(java.lang.Object type)
Specified by:
isAdapterForType in interface org.eclipse.emf.common.notify.Adapter

notifyChanged

public void notifyChanged(org.eclipse.emf.common.notify.Notification notification)
Specified by:
notifyChanged in interface org.eclipse.emf.common.notify.Adapter


Copyright © 1996-2010 Geotools. All Rights Reserved.