summaryrefslogtreecommitdiffstats
path: root/sdo-java/branches/emf-2.5/impl/src/main/java/org/apache/tuscany/sdo/util/SDOUtil.java
blob: 19ac5e8a09debf0bfbf8e59728fe8febadc1fe14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
/**
 *
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing,
 *  software distributed under the License is distributed on an
 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *  KIND, either express or implied.  See the License for the
 *  specific language governing permissions and limitations
 *  under the License.
 */
package org.apache.tuscany.sdo.util;

import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.security.AccessController;
import java.security.PrivilegedExceptionAction;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.tuscany.sdo.api.SDOHelper.XMLOptions;
import org.apache.tuscany.sdo.helper.DataFactoryImpl;
import org.apache.tuscany.sdo.helper.HelperContextImpl;
import org.apache.tuscany.sdo.helper.SDOExtendedMetaDataImpl;
import org.apache.tuscany.sdo.helper.TypeHelperImpl;
import org.apache.tuscany.sdo.helper.XMLHelperImpl;
import org.apache.tuscany.sdo.helper.XMLStreamHelper;
import org.apache.tuscany.sdo.helper.XSDHelperImpl;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.impl.EPackageImpl;
import org.eclipse.emf.ecore.impl.EPackageRegistryImpl;
import org.eclipse.emf.ecore.util.ExtendedMetaData;

import commonj.sdo.DataGraph;
import commonj.sdo.DataObject;
import commonj.sdo.Property;
import commonj.sdo.Sequence;
import commonj.sdo.Type;
import commonj.sdo.helper.CopyHelper;
import commonj.sdo.helper.DataFactory;
import commonj.sdo.helper.HelperContext;
import commonj.sdo.helper.TypeHelper;
import commonj.sdo.helper.XMLHelper;
import commonj.sdo.helper.XSDHelper;

/**
 * This class provides some useful static utility functions which are not specified in the SDO 
 *  specification itself. Use of the functions in this class is recommended, instead of resorting 
 *  to low-level implementation-specific APIs.
 *  @deprecated
 *  @see {@link org.apache.tuscany.sdo.api.SDOUtil}.
 *  @see {@link org.apache.tuscany.sdo.api.SDOHelper.XMLOptions}.
 */
public final class SDOUtil
{
  /**
   * Line Break String such as "\n", "\r\n", "\r" and "", absence/null is the default (line.separator System Property)
   *  @deprecated see {@link org.apache.tuscany.sdo.api.SDOHelper.XMLOptions}.
   */
  static public final String XML_SAVE_LineBreak = XMLOptions.XML_SAVE_LINE_BREAK,
  /**
   * Indent String such as "\t", "", etc. absence/null is the default ("  ")
   */
  XML_SAVE_INDENT = XMLOptions.XML_SAVE_INDENT,
  /**
   * Margin String such as " ", "\t\t", etc. Absence/null/"" is the default (no margin)
   */
  XML_SAVE_MARGIN = XMLOptions.XML_SAVE_MARGIN,
  /**
   * Attribute formatting that exceeds the specified width as Integer will cause a line break so that formatting will continue indented on the next line
   */
  XML_SAVE_LineWidth = XMLOptions.XML_SAVE_LINE_WIDTH,
  /**
   * Boolean to save a doctype declaration 
   */
  XML_SAVE_DocType = XMLOptions.XML_SAVE_DOCTYPE,
  /**
   * Boolean to process the schemaLocation/noNamespaceSchemaLocation attributes occurring in the instance document to {@link XSDHelper#define convert XSD(s) to Types} 
   */
  XML_LOAD_SCHEMA = XMLOptions.XML_LOAD_SCHEMA,
  /**
   * To tolerate malformed elements and attributes (default unless set by System property XML.load.form.lax). 0 not to.  
   */
  XML_LOAD_LaxForm = XMLOptions.XML_LOAD_LAX_FORM;

  /**
   * Create a new TypeHelper instance. The returned type helper will have visibility of types registered
   *  directly by calling a define method on it or by calling define on an associated XSDHelper. It will
   *  also have visibility of static types registered by calling SDOUtil.registerStaticTypes in the 
   *  same classLoader scope.
   * @return the new TypeHelper.
   * @deprecated see {@link org.apache.tuscany.sdo.api.SDOUtil#createHelperContext}
   */
  public static TypeHelper createTypeHelper()
  {
    EPackage.Registry registry = new EPackageRegistryImpl(EPackage.Registry.INSTANCE);
    ExtendedMetaData extendedMetaData = new SDOExtendedMetaDataImpl(registry); //TODO create subclass that makes demand() methods synchronous
    //return new TypeHelperImpl(extendedMetaData);
    return (new HelperContextImpl(extendedMetaData, false)).getTypeHelper();
  }

  /**
   * Create a new DataFactory, with visibility to types in the specified TypeHelper scope.
   * @param scope the TypeHelper to use for locating types.
   * @return the new DataFactory.
   * @deprecated see {@link org.apache.tuscany.sdo.api.SDOUtil#createHelperContext}
   */
  public static DataFactory createDataFactory(TypeHelper scope)
  {
	  return ((TypeHelperImpl)scope).getHelperContext().getDataFactory();
  }

  /**
   * Create a new XMLHelper, with visibility to types in the specified TypeHelper scope.
   * @param scope the TypeHelper to use for locating types.
   * @return the new XMLHelper.
   * @deprecated see {@link org.apache.tuscany.sdo.api.SDOUtil#createHelperContext}
   */
  public static XMLHelper createXMLHelper(TypeHelper scope)
  {
	  return ((TypeHelperImpl)scope).getHelperContext().getXMLHelper();
  }
  
  /**
   * Create a new XSDHelper, with visibility to types in the specified TypeHelper scope.
   * @param scope the TypeHelper to use for locating and populating types.
   * @return the new XSDHelper.
   * @deprecated see {@link org.apache.tuscany.sdo.api.SDOUtil#createHelperContext}
   */
  public static XSDHelper createXSDHelper(TypeHelper scope)
  {
	  return ((TypeHelperImpl)scope).getHelperContext().getXSDHelper();
  }
  
  /**
   * @deprecated see {@link org.apache.tuscany.sdo.api.SDOUtil#addTypeInstanceProperty(Type, Property, Object}
   */
  public static void addTypeInstanceProperties(Type definedType, DataObject modeledType)
  {
    List instanceProperties = getOpenContentProperties(modeledType);
    for (Iterator iter = instanceProperties.iterator(); iter.hasNext(); )
    {
      Property property = (Property)iter.next();
      org.apache.tuscany.sdo.api.SDOUtil.addTypeInstanceProperty(definedType, property, modeledType.get(property));
    }
  }

  /**
   * @deprecated see {@link org.apache.tuscany.sdo.api.SDOUtil#addPropertyInstanceProperty(Property, Property, Object}
   */
  public static void addPropertyInstanceProperties(Property definedProperty, DataObject modeledProperty)
  {
    List instanceProperties = getOpenContentProperties(modeledProperty);
    for (Iterator iter = instanceProperties.iterator(); iter.hasNext(); )
    {
      Property property = (Property)iter.next();
      org.apache.tuscany.sdo.api.SDOUtil.addPropertyInstanceProperty(definedProperty, property, modeledProperty.get(property));
    }
  }
 
  /**
   * Register and initialize the SDO types supported by the specified generated factory class.
   *  This function must be called before instances of the generated types can be created/used.
   *  The registered types will be visible in all TypeHelper's created in the same classLoader
   *  scope as the call to this function.
   * @param factoryClass the generated factory class.
   * @deprecated see the register(HelperContext) metods on generated Factory classes
   */
  public static void registerStaticTypes(Class factoryClass)
  {
    //TODO this implementation is temporary, until the SDO generated factory pattern is decided
    //TODO might want to clean this implementation in the light of the requirement to regenerate all classes
    //after noEMF became the default, so we have no compatibility requirements (unless we
    //cater for the simple hand edit that would make M2 generated classes work) -- as this is
    //deprecated I'm going to do nothing for now
    //
    String temp = factoryClass.getName().replaceFirst("Factory$", "PackageImpl");
    int lastDot = temp.lastIndexOf('.');
    String packageName = temp.substring(0, lastDot) + ".impl" + temp.substring(lastDot);
    
    try // this case handles the old style EMF pattern
    {
      Class javaClass = getPackageClass(factoryClass, packageName);
      Field field = javaClass.getField("eINSTANCE");
      EPackageImpl pkg = (EPackageImpl)field.get(null);
      EPackage.Registry.INSTANCE.put(pkg.getNsURI(), pkg);
    }
    catch (Exception e1)
    {
      packageName = factoryClass.getName().replaceFirst("Factory$", "Package");
      try // this case handles the EMF -noInterfaces generator pattern
      {
        Class javaClass = getPackageClass(factoryClass, packageName);
        Field field = javaClass.getField("eINSTANCE");
        EPackageImpl pkg = (EPackageImpl)field.get(null);
        EPackage.Registry.INSTANCE.put(pkg.getNsURI(), pkg);
      }
      catch (Exception e2)
      {
        try // this case handles the default (was -noEMF) generator pattern
        {
          Field field = factoryClass.getField("INSTANCE");
          EPackageImpl pkg = (EPackageImpl)field.get(null);
          EPackage.Registry.INSTANCE.put(pkg.getNsURI(), pkg);
          // TODO -- decide if we should block global initialization of Factories with the new register method.
        }
        catch (Exception e3)
        {
          e3.printStackTrace();
        }
      }
    }
  }

  /**
   * @deprecated
   */
  private static Class getPackageClass(Class factoryClass, String packageName) throws Exception
  {
    final Class factoryClassTemp = factoryClass;
    final String packageNameTemp = packageName;
    return (Class)AccessController.doPrivileged(new PrivilegedExceptionAction() {
        public Object run() throws Exception {
          return factoryClassTemp.getClassLoader().loadClass(packageNameTemp);
        }
      });
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createDataTypeWrapper(Type, Object)}.
   * @deprecated
   */
  public static DataObject createDataTypeWrapper(Type dataType, Object value)
  {
    return org.apache.tuscany.sdo.api.SDOUtil.createDataTypeWrapper(dataType, value);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createFromString(Type, String)}.
   * @deprecated
   */
  public static Object createFromString(Type dataType, String literal)
  {
    return org.apache.tuscany.sdo.api.SDOUtil.createFromString(dataType, literal);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#convertToString(Type, Object)}.
   * @deprecated
   */
  public static String convertToString(Type dataType, Object value)
  {
    return org.apache.tuscany.sdo.api.SDOUtil.convertToString(dataType, value);
  }

  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getXSDSDOType(String)}.
   * @deprecated
   */
  public static Type getXSDSDOType(String xsdType)
  {    
    return org.apache.tuscany.sdo.api.SDOUtil.getXSDSDOType(xsdType);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getSubstitutionValues(DataObject, Property)}.
   * @deprecated
   */
  public static Sequence getSubstitutionValues(DataObject dataObject, Property head)
  {
    return org.apache.tuscany.sdo.api.SDOUtil.getSubstitutionValues(dataObject, head);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getJavaSDOType(Class)}.
   * @deprecated
   */
  public static Type getJavaSDOType(Class javaClass)
  {    
    return org.apache.tuscany.sdo.api.SDOUtil.getJavaSDOType(javaClass);
  }

  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#isRequired(Property)}.
   * @deprecated
   */
  public static boolean isRequired(Property property)
  {
    return org.apache.tuscany.sdo.api.SDOUtil.isRequired(property);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getUpperBound(Property)}.
   * @deprecated
   */
  public static int getUpperBound(Property property)
  {
    return org.apache.tuscany.sdo.api.SDOUtil.getUpperBound(property);
  }

  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#isMany(Property, DataObject)}.
   * @deprecated
   */
  public static boolean isMany(Property property, DataObject context) 
  {
    return org.apache.tuscany.sdo.api.SDOUtil.isMany(property, context);
  }

  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createDataGraph}.
   * @deprecated
   */
  public static DataGraph createDataGraph()
  {
    return org.apache.tuscany.sdo.api.SDOUtil.createDataGraph();
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#setRootObject(DataGraph, DataObject)}.
   * @deprecated
   */
  public static void setRootObject(DataGraph dataGraph, DataObject rootObject)
  {
    org.apache.tuscany.sdo.api.SDOUtil.setRootObject(dataGraph, rootObject);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#loadDataGraph(InputStream, Map, TypeHelper)}.
   * @deprecated
   */
  public static DataGraph loadDataGraph(InputStream inputStream, Map options) throws IOException
  {
    return org.apache.tuscany.sdo.api.SDOUtil.loadDataGraph(inputStream, options, (HelperContext)null);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#loadDataGraph(InputStream, Map, TypeHelper)}.
   * @deprecated
   */
  public static DataGraph loadDataGraph(InputStream inputStream, Map options, TypeHelper scope) throws IOException
  {
    return org.apache.tuscany.sdo.api.SDOUtil.loadDataGraph(inputStream, options, ((TypeHelperImpl)scope).getHelperContext());
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#saveDataGraph(DataGraph, OutputStream, Map)}.
   * @deprecated
   */
  public static void saveDataGraph(DataGraph dataGraph, OutputStream outputStream, Map options) throws IOException
  {
    org.apache.tuscany.sdo.api.SDOUtil.saveDataGraph(dataGraph, outputStream, options);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#registerDataGraphTypes(DataGraph, List)}.
   * @deprecated
   */
  public static void registerDataGraphTypes(DataGraph dataGraph, List/*Type*/ types)
  {
    org.apache.tuscany.sdo.api.SDOUtil.registerDataGraphTypes(dataGraph, types);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createHelperContext(boolean)}.
   * @deprecated
   */
  public static HelperContext createHelperContext(boolean extensibleNamespaces)
  {
    return org.apache.tuscany.sdo.api.SDOUtil.createHelperContext(extensibleNamespaces);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createHelperContext}.
   * @deprecated
   */
  public static HelperContext createHelperContext()
  {
    return org.apache.tuscany.sdo.api.SDOUtil.createHelperContext();
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createCrossScopeCopyHelper(TypeHelper)}.
   * @deprecated
   */
  public static CopyHelper createCrossScopeCopyHelper(TypeHelper targetScope) 
  {
    return org.apache.tuscany.sdo.api.SDOUtil.createCrossScopeCopyHelper(((TypeHelperImpl)targetScope).getHelperContext()); 
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createXMLStreamHelper(TypeHelper)}.
   * @deprecated
   */
  public static XMLStreamHelper createXMLStreamHelper(TypeHelper scope)
  {
    return (XMLStreamHelper)org.apache.tuscany.sdo.api.SDOUtil.createXMLStreamHelper(((TypeHelperImpl)scope).getHelperContext());
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createObjectInputStream(InputStream, HelperContext)}.
   * @deprecated
   */
  public static ObjectInputStream createObjectInputStream(InputStream inputStream, HelperContext helperContext) throws IOException
  {
    return org.apache.tuscany.sdo.api.SDOUtil.createObjectInputStream(inputStream, helperContext);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createObjectOutputStream(OutputStream, HelperContext)}.
   * @deprecated
   */
  public static ObjectOutputStream createObjectOutputStream(OutputStream outputStream, HelperContext helperContext) throws IOException
  {
    return org.apache.tuscany.sdo.api.SDOUtil.createObjectOutputStream(outputStream, helperContext);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getTypes(TypeHelper, String)}.
   * @deprecated
   */
  public static List getTypes(TypeHelper scope, String uri) {

    return org.apache.tuscany.sdo.api.SDOUtil.getTypes(((TypeHelperImpl)scope).getHelperContext(), uri);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getOpenContentProperties(DataObject)}.
   * @deprecated
   */
  public static List getOpenContentProperties(DataObject dataObject)
  {
    return org.apache.tuscany.sdo.api.SDOUtil.getOpenContentProperties(dataObject);
  }

  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#isDocumentRoot(Type)}.
   * @deprecated
   */
  public static boolean isDocumentRoot(Type type)
  {
    return org.apache.tuscany.sdo.api.SDOUtil.isDocumentRoot(type);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#createType(TypeHelper, String, String, boolean)}.
   * @deprecated
   */
  public static Type createType(TypeHelper scope, String uri, String name, boolean isDataType)
  {
    return org.apache.tuscany.sdo.api.SDOUtil.createType(((TypeHelperImpl)scope).getHelperContext(), uri, name, isDataType);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addBaseType(Type, Type)}.
   * @deprecated
   */
  public static void addBaseType(Type type, Type baseType)
  {
    org.apache.tuscany.sdo.api.SDOUtil.addBaseType(type, baseType);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addAliasName(Type, String)}.
   * @deprecated
   */
  public static void addAliasName(Type type, String aliasName)
  {
    org.apache.tuscany.sdo.api.SDOUtil.addAliasName(type, aliasName);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setOpen(Type, boolean)}.
   * @deprecated
   */
  public static void setOpen(Type type, boolean isOpen)
  {
    org.apache.tuscany.sdo.api.SDOUtil.setOpen(type, isOpen);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setSequenced(Type, boolean)}.
   * @deprecated
   */
  public static void setSequenced(Type type, boolean isSequenced)
  {
    org.apache.tuscany.sdo.api.SDOUtil.setSequenced(type, isSequenced);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setAbstract(Type, boolean)}.
   * @deprecated
   */
  public static void setAbstract(Type type, boolean isAbstract)
  {
    org.apache.tuscany.sdo.api.SDOUtil.setAbstract(type, isAbstract);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setJavaClassName(Type, String)}.
   * @deprecated
   */
  public static void setJavaClassName(Type type, String javaClassName)
  {
    org.apache.tuscany.sdo.api.SDOUtil.setJavaClassName(type, javaClassName);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#createProperty(Type, String, Type)}.
    * @deprecated
  */
  public static Property createProperty(Type containingType, String name, Type propertyType)
  {
    return org.apache.tuscany.sdo.api.SDOUtil.createProperty(containingType, name, propertyType);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#createGlobalProperty(TypeHelper, String, String, Type)}.
   * @deprecated
   */
  public static Property createGlobalProperty(TypeHelper scope, String uri, String name, Type type)
  {
    return org.apache.tuscany.sdo.api.SDOUtil.createOpenContentProperty(((TypeHelperImpl)scope).getHelperContext(), uri, name, type);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addAliasName(Property, String)}.
   * @deprecated
   */
  public static void addAliasName(Property property, String aliasName)
  {
    org.apache.tuscany.sdo.api.SDOUtil.addAliasName(property, aliasName);
  }
 
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setMany(Property, boolean)}.
   * @deprecated
   */
  public static void setMany(Property property, boolean isMany)
  {
    org.apache.tuscany.sdo.api.SDOUtil.setMany(property, isMany);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setContainment(Property, boolean)}.
   * @deprecated
   */
  public static void setContainment(Property property, boolean isContainment)
  {
    org.apache.tuscany.sdo.api.SDOUtil.setContainment(property, isContainment);
  }

  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setDefault(Property, String)}.
   * @deprecated
   */
  public static void setDefault(Property property, String defaultValue)
  {
    org.apache.tuscany.sdo.api.SDOUtil.setDefault(property, defaultValue);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setReadOnly(Property, boolean)}.
   * @deprecated
   */
  public static void setReadOnly(Property property, boolean isReadOnly)
  {
    org.apache.tuscany.sdo.api.SDOUtil.setReadOnly(property, isReadOnly);
  }
  
  /**
   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setOpposite(Property, Property)}.
   * @deprecated
   */
  public static void setOpposite(Property property, Property opposite)
  {
    org.apache.tuscany.sdo.api.SDOUtil.setOpposite(property, opposite);
  }
    
}