test coverage improvements + build against latest search console build
diff --git a/development/org.eclipse.wst.sse.sieditor.releng/pom.xml b/development/org.eclipse.wst.sse.sieditor.releng/pom.xml
index 38848c1..a2d4db4 100644
--- a/development/org.eclipse.wst.sse.sieditor.releng/pom.xml
+++ b/development/org.eclipse.wst.sse.sieditor.releng/pom.xml
@@ -66,7 +66,7 @@
 		</repository>

 		<repository>

 			<id>e4-incubation</id>

-			<url>http://download.eclipse.org/e4/downloads/drops/R-0.11-201106201631/repository</url>

+			<url>http://download.eclipse.org/e4/downloads/drops/R-0.14-201306242200/repository/</url>

 			<layout>p2</layout>

 		</repository>

 	</repositories>

diff --git a/plugins/org.eclipse.wst.sse.sieditor.search.test/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.sse.sieditor.search.test/META-INF/MANIFEST.MF
index 0bd0b00..d5ec674 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.search.test/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.sse.sieditor.search.test/META-INF/MANIFEST.MF
@@ -18,7 +18,9 @@
  org.eclipse.equinox.common;bundle-version="3.6.0",
  org.eclipse.platform.discovery.util;bundle-version="0.11.0",
  org.eclipse.ui.forms,
- org.eclipse.wst.sse.sieditor.test;bundle-version="1.0.0"
+ org.eclipse.wst.sse.sieditor.test;bundle-version="1.0.0",
+ org.eclipse.wst.wsdl,
+ org.eclipse.emf.ecore
 Export-Package: org.eclipse.wst.sse.sieditor.search.destinations,
  org.eclipse.wst.sse.sieditor.search.destinations.wsdl,
  org.eclipse.wst.sse.sieditor.search.destinations.xsd,
diff --git a/plugins/org.eclipse.wst.sse.sieditor.search.test/src/org/eclipse/wst/sse/sieditor/search/suites/SearchConsoleIntegrationAllTestSuite.java b/plugins/org.eclipse.wst.sse.sieditor.search.test/src/org/eclipse/wst/sse/sieditor/search/suites/SearchConsoleIntegrationAllTestSuite.java
index 700c542..563e6cc 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.search.test/src/org/eclipse/wst/sse/sieditor/search/suites/SearchConsoleIntegrationAllTestSuite.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.search.test/src/org/eclipse/wst/sse/sieditor/search/suites/SearchConsoleIntegrationAllTestSuite.java
@@ -14,6 +14,7 @@
 import org.eclipse.wst.sse.sieditor.search.ui.BasicSearchResultCustomUiCreatorTest;
 import org.eclipse.wst.sse.sieditor.search.ui.SearchResultContentProviderTest;
 import org.eclipse.wst.sse.sieditor.search.ui.SearchResultLableProviderTest;
+import org.eclipse.wst.sse.sieditor.search.ui.actions.AbstractActiveOnSingleSelectionActionTest;
 import org.eclipse.wst.sse.sieditor.search.ui.actions.CopyActionTest;
 import org.eclipse.wst.sse.sieditor.search.ui.actions.OpenInEditorActionTest;
 import org.eclipse.wst.sse.sieditor.search.ui.tree.FileNodeTest;
@@ -27,22 +28,23 @@
 @SuiteClasses({ RootTreeNodeTest.class, 
                 NameSpaceNodeTest.class, 
                 LocalXsdDefinitionsSearchProviderTest.class,
-                LocalWsdlDefinitionsSearchProviderTest.class,
+                LocalWsdlDefinitionsSearchProviderTest.class, 
                 LocalXsdDestinationsProviderTest.class,
-                LocalWsdlDestinationsProviderTest.class,
-                AbstractSearchDestinationTest.class,
+                LocalWsdlDestinationsProviderTest.class, 
+                AbstractSearchDestinationTest.class, 
                 SearchResultContentProviderTest.class,
-                SearchResultLableProviderTest.class,
-                FileNodeTest.class,
+                SearchResultLableProviderTest.class, 
+                FileNodeTest.class, 
                 BasicSearchResultCustomUiCreatorTest.class,
-                OpenInEditorActionTest.class,
-                XsdDefinitionsSearchQueryTest.class,
+                OpenInEditorActionTest.class, 
+                XsdDefinitionsSearchQueryTest.class, 
                 WsdlDefinitionsSearchQueryTest.class,
-                AbstractLocalDefinitionsSearchProviderTest.class,
-                WildcardStringMatcherTest.class,
+                AbstractLocalDefinitionsSearchProviderTest.class, 
+                WildcardStringMatcherTest.class, 
                 WsdlSearchQueryOperationTest.class,
-                XsdSearchQueryOperationTest.class,
-                CopyActionTest.class
+                XsdSearchQueryOperationTest.class, 
+                CopyActionTest.class, 
+                AbstractActiveOnSingleSelectionActionTest.class, 
 })
 public class SearchConsoleIntegrationAllTestSuite {
 
diff --git a/plugins/org.eclipse.wst.sse.sieditor.search.test/src/org/eclipse/wst/sse/sieditor/search/ui/actions/AbstractActiveOnSingleSelectionActionTest.java b/plugins/org.eclipse.wst.sse.sieditor.search.test/src/org/eclipse/wst/sse/sieditor/search/ui/actions/AbstractActiveOnSingleSelectionActionTest.java
new file mode 100644
index 0000000..915eaec
--- /dev/null
+++ b/plugins/org.eclipse.wst.sse.sieditor.search.test/src/org/eclipse/wst/sse/sieditor/search/ui/actions/AbstractActiveOnSingleSelectionActionTest.java
@@ -0,0 +1,52 @@
+package org.eclipse.wst.sse.sieditor.search.ui.actions;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.Mockito;
+
+public class AbstractActiveOnSingleSelectionActionTest {
+
+    @Test
+    public void testGetStructuredSelectionFirstElement() {
+        IStructuredSelection structuredSelection = Mockito.mock(IStructuredSelection.class);
+        ISelection firstElement = Mockito.mock(ISelection.class);
+        Mockito.when(structuredSelection.getFirstElement()).thenReturn(firstElement);
+
+        MockedActiveOnSingleSelectionAction mock = new MockedActiveOnSingleSelectionAction(structuredSelection);
+        Assert.assertEquals(firstElement, mock.getStructuredSelectionFirstElement());
+
+    }
+
+    @Test
+    public void testIsEnabled() {
+        ISelection selection = Mockito.mock(ISelection.class);
+        MockedActiveOnSingleSelectionAction mock = new MockedActiveOnSingleSelectionAction(selection);
+        Assert.assertFalse(mock.isEnabled());
+
+        IStructuredSelection structuredSelection = Mockito.mock(IStructuredSelection.class);
+        mock = new MockedActiveOnSingleSelectionAction(structuredSelection);
+        Mockito.when(structuredSelection.size()).thenReturn(0);
+        Assert.assertFalse(mock.isEnabled());
+
+        Mockito.when(structuredSelection.size()).thenReturn(2);
+        Assert.assertFalse(mock.isEnabled());
+
+        Mockito.when(structuredSelection.size()).thenReturn(1);
+        Assert.assertTrue(mock.isEnabled());
+    }
+
+    private class MockedActiveOnSingleSelectionAction extends AbstractActiveOnSingleSelectionAction {
+
+        @Override
+        protected Object getStructuredSelectionFirstElement() {
+            return super.getStructuredSelectionFirstElement();
+        }
+
+        public MockedActiveOnSingleSelectionAction(ISelection selection) {
+            super(selection);
+        }
+
+    }
+}
diff --git a/plugins/org.eclipse.wst.sse.sieditor.search.test/src/org/eclipse/wst/sse/sieditor/search/ui/actions/OpenInEditorActionTest.java b/plugins/org.eclipse.wst.sse.sieditor.search.test/src/org/eclipse/wst/sse/sieditor/search/ui/actions/OpenInEditorActionTest.java
index 8b5632e..65641fb 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.search.test/src/org/eclipse/wst/sse/sieditor/search/ui/actions/OpenInEditorActionTest.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.search.test/src/org/eclipse/wst/sse/sieditor/search/ui/actions/OpenInEditorActionTest.java
@@ -1,27 +1,96 @@
 package org.eclipse.wst.sse.sieditor.search.ui.actions;
 
+import org.eclipse.core.resources.IFile;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.wst.sse.sieditor.model.api.IModelObject;
+import org.eclipse.wst.sse.sieditor.model.api.IWsdlModelRoot;
+import org.eclipse.wst.sse.sieditor.model.impl.WSDLFactory;
+import org.eclipse.wst.sse.sieditor.model.wsdl.api.IDescription;
+import org.eclipse.wst.sse.sieditor.model.xsd.api.ISchema;
+import org.eclipse.wst.sse.sieditor.search.ui.tree.FileNode;
+import org.eclipse.wst.sse.sieditor.test.util.ProjectBasedTest;
+import org.eclipse.wst.sse.sieditor.test.util.ResourceUtils;
+import org.eclipse.wst.sse.sieditor.test.util.SIEditorBaseTest;
 import org.eclipse.wst.sse.sieditor.ui.DataTypesEditor;
 import org.eclipse.wst.sse.sieditor.ui.ServiceInterfaceEditor;
-import org.eclipse.wst.sse.sieditor.ui.v2.dt.nodes.INamespaceNode;
 import org.eclipse.wst.sse.sieditor.ui.v2.nodes.ITreeNode;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.util.WSDLResourceImpl;
 import org.junit.Assert;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.mockito.Mockito;
 
-public class OpenInEditorActionTest {
+@SuppressWarnings("nls")
+public class OpenInEditorActionTest extends ProjectBasedTest {
+
+    private IFile copiedFileIntoTestProject;
+
+    @BeforeClass
+    public void setUp() throws Exception {
+        super.setUp();
+
+        copiedFileIntoTestProject = ResourceUtils.copyFileIntoTestProject("pub/simple/NewWSDLFileCyclingTypes.wsdl",
+                SIEditorBaseTest.Document_FOLDER_NAME, this.getProject(), "ECC_CUSTOMER002QR.wsdl");
+
+        setDeleteProjectOnTearDown();
+    }
+
+    @Test
+    public void testGetFileFromTreeNode() {
+        OpenInEditorActionMock openInEditorActionMock = new OpenInEditorActionMock(Mockito.mock(ISelection.class));
+        FileNode fileNode = new FileNode(copiedFileIntoTestProject, Mockito.mock(ITreeNode.class), false);
+        Assert.assertEquals(copiedFileIntoTestProject, openInEditorActionMock.getFileFromTreeNode(fileNode));
+
+        ResourceSet resourceSet = new ResourceSetImpl();
+
+        WSDLResourceImpl resource = (WSDLResourceImpl) resourceSet.getResource(
+                URI.createFileURI(copiedFileIntoTestProject.getLocation().toFile().getAbsolutePath()), true);
+        Definition definition = resource.getDefinition();
+        IWsdlModelRoot modelRoot = WSDLFactory.getInstance().createWSDLModelRoot(definition);
+
+        ITreeNode treeNode = Mockito.mock(ITreeNode.class);
+        Mockito.when(treeNode.getModelObject()).thenReturn(modelRoot.getModelObject());
+
+        Assert.assertEquals(copiedFileIntoTestProject, openInEditorActionMock.getFileFromTreeNode(treeNode));
+    }
 
     @Test
     public void testGetEditorId() {
         OpenInEditorActionMock openInEditorActionMock = new OpenInEditorActionMock(Mockito.mock(ISelection.class));
 
-        ITreeNode treeNode = Mockito.mock(ITreeNode.class);
+        FileNode treeNode = Mockito.mock(FileNode.class);
+        Mockito.when(treeNode.isXsdFile()).thenReturn(false);
         String editorId = openInEditorActionMock.getEditorId(treeNode);
         Assert.assertEquals(ServiceInterfaceEditor.EDITOR_ID, editorId);
 
-        INamespaceNode schemanRoot = Mockito.mock(INamespaceNode.class);
-        editorId = openInEditorActionMock.getEditorId(schemanRoot);
+        Mockito.when(treeNode.isXsdFile()).thenReturn(true);
+        editorId = openInEditorActionMock.getEditorId(treeNode);
         Assert.assertEquals(DataTypesEditor.EDITOR_ID, editorId);
+
+        IModelObject modelObject = Mockito.mock(IModelObject.class);
+        Mockito.when(modelObject.getRoot()).thenReturn(Mockito.mock(ISchema.class));
+        ITreeNode treeNode2 = Mockito.mock(ITreeNode.class);
+        Mockito.when(treeNode2.getModelObject()).thenReturn(modelObject);
+        editorId = openInEditorActionMock.getEditorId(treeNode2);
+        Assert.assertEquals(DataTypesEditor.EDITOR_ID, editorId);
+
+        Mockito.when(modelObject.getRoot()).thenReturn(Mockito.mock(IDescription.class));
+        editorId = openInEditorActionMock.getEditorId(treeNode2);
+        Assert.assertEquals(ServiceInterfaceEditor.EDITOR_ID, editorId);
+    }
+
+    @Test
+    public void testGetText() {
+        Assert.assertNotNull(new OpenInEditorAction(Mockito.mock(ISelection.class)).getText());
+    }
+
+    @Override
+    protected String getProjectName() {
+        return "OpenInEditorActionTest";
     }
 
     private class OpenInEditorActionMock extends OpenInEditorAction {
@@ -31,8 +100,14 @@
         }
 
         @Override
-        public String getEditorId(ITreeNode treeNode) {
+        protected String getEditorId(ITreeNode treeNode) {
             return super.getEditorId(treeNode);
         }
+
+        @Override
+        protected IFile getFileFromTreeNode(ITreeNode selectedTreeNode) {
+            return super.getFileFromTreeNode(selectedTreeNode);
+        }
     }
+
 }
diff --git a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/ui/actions/OpenInEditorAction.java b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/ui/actions/OpenInEditorAction.java
index eebfec6..e65fa06 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/ui/actions/OpenInEditorAction.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/ui/actions/OpenInEditorAction.java
@@ -22,7 +22,7 @@
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.part.FileEditorInput;
 import org.eclipse.wst.sse.sieditor.model.api.IModelObject;
-import org.eclipse.wst.sse.sieditor.model.wsdl.impl.Description;
+import org.eclipse.wst.sse.sieditor.model.wsdl.api.IDescription;
 import org.eclipse.wst.sse.sieditor.search.i18n.Messages;
 import org.eclipse.wst.sse.sieditor.search.ui.tree.FileNode;
 import org.eclipse.wst.sse.sieditor.ui.DataTypesEditor;
@@ -65,7 +65,7 @@
             isWsdlFile = !fileNode.isXsdFile();
         } else {
             IModelObject root = selectedTreeNode.getModelObject().getRoot();
-            isWsdlFile = root instanceof Description;
+            isWsdlFile = root instanceof IDescription;
         }
 
         return isWsdlFile ? ServiceInterfaceEditor.EDITOR_ID : DataTypesEditor.EDITOR_ID;
diff --git a/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/all/UITestsSuite.java b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/all/UITestsSuite.java
index 701eca7..a91c1a0 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/all/UITestsSuite.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/all/UITestsSuite.java
@@ -59,6 +59,8 @@
 import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.StructureNodeDetailsPageTest;

 import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.TestElementNodeDetailsPage;

 import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.TestTypeNullNameAttribute;

+import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.dnd.SiEditorTransferTest;

+import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.dnd.TreeViewerDropAdapterTest;

 import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.extract.ExtractNamespaceWizardTest;

 import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.extract.ExtractSchemaTextFieldModifyListenerTest;

 import org.eclipse.wst.sse.sieditor.test.ui.v2.dt.nodes.impl.ElementNodeTest;

@@ -279,7 +281,9 @@
     TestSetSelectionInDTPageFromSourcePageWithDTE.class,

     TestSetSelectionInSIPageFromSourcePageWithSIE.class,

     TestTypePropertyEditorHyperLinkSelection.class,

-    PageChangedListenersManagerTest.class

+    PageChangedListenersManagerTest.class,

+    SiEditorTransferTest.class,

+    TreeViewerDropAdapterTest.class,

 })

 public class UITestsSuite {

 

diff --git a/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/v2/dt/dnd/SiEditorTransferTest.java b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/v2/dt/dnd/SiEditorTransferTest.java
new file mode 100644
index 0000000..29bcba3
--- /dev/null
+++ b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/v2/dt/dnd/SiEditorTransferTest.java
@@ -0,0 +1,65 @@
+package org.eclipse.wst.sse.sieditor.test.ui.v2.dt.dnd;
+
+import org.eclipse.swt.dnd.TransferData;
+import org.eclipse.wst.sse.sieditor.ui.v2.dt.dnd.SiEditorTransfer;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class SiEditorTransferTest {
+
+    @Test
+    public void testGetInstance() {
+        SiEditorTransfer instance1 = SiEditorTransfer.getInstance();
+        SiEditorTransfer instance2 = SiEditorTransfer.getInstance();
+        Assert.assertSame(instance1, instance2);
+    }
+
+    @Test
+    public void testIsSupportedType() {
+        TransferData transferData = new TransferData();
+        transferData.type = SiEditorTransfer.TYPEID;
+
+        Assert.assertTrue(SiEditorTransfer.getInstance().isSupportedType(transferData));
+
+        transferData.type = Integer.MAX_VALUE;
+        Assert.assertFalse(SiEditorTransfer.getInstance().isSupportedType(transferData));
+    }
+
+    @Test
+    public void testObjectCarrying() {
+        Object[] objectArray = new Object[0];
+        TransferData transferData = new TransferData();
+        transferData.type = SiEditorTransfer.TYPEID;
+        SiEditorTransfer.getInstance().javaToNative(objectArray, transferData);
+        Assert.assertSame(objectArray, SiEditorTransfer.getInstance().nativeToJava(transferData));
+    }
+
+    @Test
+    public void testGetTypeIds() {
+        SiEditorTransferExposer siEditorTransfer = new SiEditorTransferExposer();
+        int[] typeIds = siEditorTransfer.getTypeIds();
+        Assert.assertEquals(typeIds.length, 1);
+        Assert.assertEquals(SiEditorTransfer.TYPEID, typeIds[0]);
+    }
+
+    @Test
+    public void testGetTypeNames() {
+        SiEditorTransferExposer siEditorTransfer = new SiEditorTransferExposer();
+        String[] typeNames = siEditorTransfer.getTypeNames();
+        Assert.assertEquals(typeNames.length, 1);
+        Assert.assertEquals(SiEditorTransfer.TYPE_NAME, typeNames[0]);
+    }
+
+    private class SiEditorTransferExposer extends SiEditorTransfer {
+
+        @Override
+        protected int[] getTypeIds() {
+            return super.getTypeIds();
+        }
+
+        @Override
+        protected String[] getTypeNames() {
+            return super.getTypeNames();
+        }
+    }
+}
diff --git a/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/v2/dt/dnd/TreeViewerDropAdapterTest.java b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/v2/dt/dnd/TreeViewerDropAdapterTest.java
new file mode 100644
index 0000000..ffc2aa4
--- /dev/null
+++ b/plugins/org.eclipse.wst.sse.sieditor.test/api/org/eclipse/wst/sse/sieditor/test/ui/v2/dt/dnd/TreeViewerDropAdapterTest.java
@@ -0,0 +1,22 @@
+package org.eclipse.wst.sse.sieditor.test.ui.v2.dt.dnd;
+
+import org.eclipse.swt.dnd.TransferData;
+import org.eclipse.wst.sse.sieditor.ui.v2.dt.dnd.SiEditorTransfer;
+import org.eclipse.wst.sse.sieditor.ui.v2.dt.dnd.TreeViewerDropAdapter;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class TreeViewerDropAdapterTest {
+
+    @Test
+    public void testValidateDrop() {
+        TreeViewerDropAdapter treeViewerDropAdapter = new TreeViewerDropAdapter(null, null);
+        TransferData transferData = new TransferData();
+        transferData.type = SiEditorTransfer.TYPEID;
+
+        Assert.assertTrue(treeViewerDropAdapter.validateDrop(null, 0, transferData));
+
+        transferData.type = Integer.MAX_VALUE;
+        Assert.assertFalse(treeViewerDropAdapter.validateDrop(null, 0, transferData));
+    }
+}
diff --git a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/v2/dt/dnd/SiEditorTransfer.java b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/v2/dt/dnd/SiEditorTransfer.java
index b310a5b..0f6eff3 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/v2/dt/dnd/SiEditorTransfer.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.ui/api/org/eclipse/wst/sse/sieditor/ui/v2/dt/dnd/SiEditorTransfer.java
@@ -12,8 +12,8 @@
 

 public class SiEditorTransfer extends ByteArrayTransfer {

     private static SiEditorTransfer instance = new SiEditorTransfer();

-    private static final String TYPE_NAME = "sie-transfer-format"; //$NON-NLS-1$

-    private static final int TYPEID = registerType(TYPE_NAME);

+    public static final String TYPE_NAME = "sie-transfer-format"; //$NON-NLS-1$

+    public static final int TYPEID = registerType(TYPE_NAME);

 

     private WeakReference<Object[]> modelObject;

 

@@ -21,7 +21,7 @@
         return instance;

     }

 

-    private SiEditorTransfer() {

+    protected SiEditorTransfer() {

     }

 

     protected int[] getTypeIds() {