1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.support.editor.registry;
14
15 import com.eviware.soapui.impl.rest.panels.request.views.content.RestRequestContentViewFactory;
16 import com.eviware.soapui.impl.rest.panels.request.views.html.RestHtmlResponseViewFactory;
17 import com.eviware.soapui.impl.rest.panels.request.views.json.RestJsonResponseViewFactory;
18 import com.eviware.soapui.support.editor.views.xml.raw.RawXmlEditorFactory;
19 import com.eviware.soapui.support.editor.views.xml.source.XmlSourceEditorViewFactory;
20
21 import java.util.ArrayList;
22 import java.util.Arrays;
23 import java.util.List;
24
25 /***
26 * Registry of availabel XmlViews
27 *
28 * @author ole.matzura
29 */
30
31 public class EditorViewFactoryRegistry
32 {
33 private static EditorViewFactoryRegistry instance;
34 private List<EditorViewFactory> factories = new ArrayList<EditorViewFactory>();
35
36 public EditorViewFactoryRegistry()
37 {
38
39 addFactory( new XmlSourceEditorViewFactory() );
40
41 addFactory( new RestRequestContentViewFactory() );
42 addFactory( new RestJsonResponseViewFactory() );
43 addFactory( new RestHtmlResponseViewFactory());
44 addFactory( new RawXmlEditorFactory() );
45 }
46
47 public void addFactory( EditorViewFactory factory )
48 {
49 factories.add( factory );
50 }
51
52 public void setFactory( String viewId, EditorViewFactory factory )
53 {
54 for( int c = 0; c < factories.size(); c++ )
55 {
56 if( factories.get( c ).getViewId().equals( viewId ) )
57 {
58 factories.set( c, factory );
59 }
60 }
61 }
62
63 public static final EditorViewFactoryRegistry getInstance()
64 {
65 if( instance == null )
66 instance = new EditorViewFactoryRegistry();
67
68 return instance;
69 }
70
71 public EditorViewFactory[] getFactories()
72 {
73 return factories.toArray( new EditorViewFactory[factories.size()] );
74 }
75
76 public EditorViewFactory[] getFactoriesOfType( Class<?> type )
77 {
78 List<EditorViewFactory> result = new ArrayList<EditorViewFactory>();
79 for( EditorViewFactory factory : factories )
80 {
81 if( Arrays.asList( factory.getClass().getInterfaces() ).contains( type ) )
82 result.add( factory );
83 }
84
85 return result.toArray( new EditorViewFactory[result.size()] );
86 }
87 }