class DynamicPackageRegistryReader extends RegistryReader { static final String TAG_RESOURCE = "resource"; static final String ATT_URI = "uri"; static final String ATT_LOCATION = "location"; public DynamicPackageRegistryReader() { super (Platform.getExtensionRegistry(), EcorePlugin.getPlugin().getBundle().getSymbolicName(), EcorePlugin.DYNAMIC_PACKAGE_PPID); } @Override protected boolean readElement(IConfigurationElement element, boolean add) { if (element.getName().equals(TAG_RESOURCE)) { String packageURI = element.getAttribute(ATT_URI); if (packageURI == null) { logMissingAttribute(element, ATT_URI); } else if (element.getAttribute(ATT_LOCATION) == null) { logMissingAttribute(element, ATT_LOCATION); } else if (add) { Object previous = EPackage.Registry.INSTANCE.put(packageURI, new EPackageDescriptor.Dynamic(element, ATT_LOCATION)); if (previous instanceof PluginClassDescriptor) { PluginClassDescriptor descriptor = (PluginClassDescriptor)previous; EcorePlugin.INSTANCE.log ("Both '" + descriptor.element.getContributor().getName() + "' and '" + element.getContributor().getName() + "' register a package for '" + packageURI + "'"); } return true; } else { EPackage.Registry.INSTANCE.remove(packageURI); return true; } } return false;
class ExtensionParserRegistryReader extends RegistryReader { static final String TAG_PARSER = "parser"; static final String ATT_TYPE = "type"; static final String ATT_CLASS = "class"; public ExtensionParserRegistryReader() { super (Platform.getExtensionRegistry(), EcorePlugin.getPlugin().getBundle().getSymbolicName(), EcorePlugin.EXTENSION_PARSER_PPID); } @Override protected boolean readElement(IConfigurationElement element, boolean add) { if (element.getName().equals(TAG_PARSER)) { String type = element.getAttribute(ATT_TYPE); if (type == null) { logMissingAttribute(element, ATT_TYPE); } else if (element.getAttribute(ATT_CLASS) == null) { logMissingAttribute(element, ATT_CLASS); } else if (add) { Object previous = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(type, new ResourceFactoryDescriptor(element, ATT_CLASS)); if (previous instanceof ResourceFactoryDescriptor) { ResourceFactoryDescriptor descriptor = (ResourceFactoryDescriptor)previous; EcorePlugin.INSTANCE.log ("Both '" + descriptor.element.getContributor().getName() + "' and '" + element.getContributor().getName() + "' register an extension parser for '" + type + "'"); } return true; } else { Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().remove(type); return true; } } return false;
Clone fragments detected by clone detection tool
File path: /emf-2.4.1/src/org/eclipse/emf/ecore/plugin/DynamicPackageRegistryReader.java File path: /emf-2.4.1/src/org/eclipse/emf/ecore/plugin/ExtensionParserRegistryReader.java
Method name: Method name:
Number of AST nodes: 0 Number of AST nodes: 0
1
class DynamicPackageRegistryReader extends RegistryReader
1
class ExtensionParserRegistryReader extends RegistryReader
2
{
2
{
3
  static final String TAG_RESOURCE = "resource";
3
  static final String TAG_PARSER = "parser";
4
  static final String ATT_URI = "uri";
4
  static final String ATT_TYPE = "type";
5
  static final String ATT_LOCATION = "location";
5
  static final String ATT_
6
  public DynamicPackage
6
CLASS = "class";
7
RegistryReader()
7
  public ExtensionParserRegistryReader()
8
  {
8
  {
9
    super
9
    super
10
      (Platform.getExtensionRegistry(),
10
      (Platform.getExtensionRegistry(),
11
       EcorePlugin.getPlugin().getBundle().getSymbolicName(), 
11
       EcorePlugin.getPlugin().getBundle().getSymbolicName(), 
12
       EcorePlugin.DYNAMIC_PACKAGE_PPID);
12
       EcorePlugin.EXTENSION_PARSER_PPID);
13
  }
13
  }
14
  @Override
14
  @Override
15
  protected boolean readElement(IConfigurationElement element, boolean add)
15
  protected boolean readElement(IConfigurationElement element, boolean add)
16
  {
16
  {
17
    if (element.getName().equals(TAG_RESOURCE))
17
    if (element.getName().equals(TAG_PARSER))
18
    {
18
    {
19
      String packageURI = element.getAttribute(ATT_URI);
19
      String type = element.getAttribute(ATT_TYPE);
20
      if (packageURI == null)
20
      if (type == null)
21
      {
21
      {
22
        logMissingAttribute(element, ATT_URI);
22
        logMissingAttribute(element, ATT_TYPE);
23
      }
23
      }
24
      else if (element.getAttribute(ATT_LOCATION) == null)
24
      else if (element.getAttribute(ATT_CLASS) == null)
25
      {
25
      {
26
        logMissingAttribute(element, ATT_LOCATION);
26
        logMissingAttribute(element, ATT_CLASS);
27
      }
27
      }
28
      else if (add)
28
      else if (add)
29
      {
29
      {
30
        Object previous = EPackage.Registry.INSTANCE.put(packageURI, new EPackageDescriptor.Dynamic(element, ATT_LOCATION));
30
        Object previous = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(type, new ResourceFactoryDescriptor(element, ATT_CLASS));
31
        if (previous instanceof PluginClassDescriptor)
31
        if (previous instanceof ResourceFactoryDescriptor)
32
        {
32
        {
33
          PluginClassDescriptor descriptor = (PluginClassDescriptor)previous;
33
          ResourceFactoryDescriptor descriptor = (ResourceFactoryDescriptor)previous;
34
          EcorePlugin.INSTANCE.log
34
          EcorePlugin.INSTANCE.log
35
            ("Both '" + descriptor.element.getContributor().getName() + "' and '" + element.getContributor().getName() + "' register a package for '" + packageURI + "'");
35
            ("Both '" + descriptor.element.getContributor().getName() + "' and '" + element.getContributor().getName() + "' register an extension parser for '" + type + "'");
36
        }
36
        }
37
        
38
        return true;
37
        return true;
39
      }
38
      }
40
      else
39
      else
41
      {
40
      {
42
        EPackage.Registry.INSTANCE.remove(packageURI);
41
        Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().remove(type);
43
        return true;
42
        return true;
44
      }
43
      }
45
    }
44
    }
46
    return false;
45
    return false;
47
  
46
  
Summary
Number of common nesting structure subtrees0
Number of refactorable cases0
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.0
Clones location
Number of node comparisons0