// Path: src/main/java/com/modelsolv/kaboom/model/canonical/CDMPrimitiveProperty.java
// public interface CDMPrimitiveProperty extends CDMProperty, ReadableCDMPrimitiveProperty {
// 	
// 	public void setType(PrimitiveDataType type);
// 	
// }
// 
// Path: src/main/java/com/modelsolv/kaboom/model/canonical/CDMProperty.java
// public interface CDMProperty extends ReadableCDMProperty {
// 
// 	public void setName(String name);
// 	
// 	public void setCardinality(Cardinality cardinality);
// 
// }
// 
// Path: src/main/java/com/modelsolv/kaboom/model/canonical/CDMReferenceProperty.java
// public interface CDMReferenceProperty extends CDMProperty, ReadableCDMReferenceProperty {
// 	
// 	public void setTargetDataType(CanonicalDataType type);
// 	
// 	public CDMReferenceProperty withTargetDataType(CanonicalDataType type);
// 	
// 	public void setInverseProperty(CDMReferenceProperty inverse);
// 	
// 	public CDMReferenceProperty withInverseProperty(CDMReferenceProperty inverse);
// 
// }
// 
// Path: src/main/java/com/modelsolv/kaboom/model/canonical/CanonicalDataType.java
// public interface CanonicalDataType {
// 	
// 	public String getName();
// 	
// 	public void setName(String name);
// 	
// 	public Iterable<CDMProperty> getProperties();
// 	
// 	public CDMProperty getProperty(String propName);
// 	
// 	public boolean hasProperty(CDMProperty property);
// 	
// 	public CanonicalDataType withPrimitive(String name, PrimitiveDataType type);
// 	
// 	public CanonicalDataType withPrimitive(String name, PrimitiveDataType type, Cardinality cardinality);
// 
// 	public CanonicalDataType withReference(String name, CanonicalDataType type);
// 
// 	public CanonicalDataType withReference(String name, CanonicalDataType type, Cardinality cardinality);
// 
// }


import com.modelsolv.kaboom.model.canonical.CDMPrimitiveProperty;
import com.modelsolv.kaboom.model.canonical.CDMProperty;
import com.modelsolv.kaboom.model.canonical.CDMReferenceProperty;
import com.modelsolv.kaboom.model.canonical.CanonicalDataType;
/*******************************************************************************
 * Copyright (c) 2014 ModelSolv, Inc. and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     ModelSolv, Inc. - initial API and implementation.
 *******************************************************************************/
package com.modelsolv.kaboom.model.resource;


public interface ResourceDataModel {

	public CanonicalDataType getCanonicalDataType();

	public void setCanonicalDataType(CanonicalDataType type);

	public ResourceDataModel withCanonicalDataType(CanonicalDataType type);

	public Iterable<RDMProperty> getIncludedProperties();

	// Add a list of CDM properties from the CanonicalDataType
	public ResourceDataModel includingProperties(CDMProperty... properties);

	public ResourceDataModel includingProperties(String... properties);

	// Add Primitive Property from CDM Property
	public RDMPrimitiveProperty addPrimitiveProperty(
// Path: src/main/java/com/modelsolv/kaboom/model/canonical/CDMPrimitiveProperty.java
// public interface CDMPrimitiveProperty extends CDMProperty, ReadableCDMPrimitiveProperty {
// 	
// 	public void setType(PrimitiveDataType type);
// 	
// }
// 
// Path: src/main/java/com/modelsolv/kaboom/model/canonical/CDMProperty.java
// public interface CDMProperty extends ReadableCDMProperty {
// 
// 	public void setName(String name);
// 	
// 	public void setCardinality(Cardinality cardinality);
// 
// }
// 
// Path: src/main/java/com/modelsolv/kaboom/model/canonical/CDMReferenceProperty.java
// public interface CDMReferenceProperty extends CDMProperty, ReadableCDMReferenceProperty {
// 	
// 	public void setTargetDataType(CanonicalDataType type);
// 	
// 	public CDMReferenceProperty withTargetDataType(CanonicalDataType type);
// 	
// 	public void setInverseProperty(CDMReferenceProperty inverse);
// 	
// 	public CDMReferenceProperty withInverseProperty(CDMReferenceProperty inverse);
// 
// }
// 
// Path: src/main/java/com/modelsolv/kaboom/model/canonical/CanonicalDataType.java
// public interface CanonicalDataType {
// 	
// 	public String getName();
// 	
// 	public void setName(String name);
// 	
// 	public Iterable<CDMProperty> getProperties();
// 	
// 	public CDMProperty getProperty(String propName);
// 	
// 	public boolean hasProperty(CDMProperty property);
// 	
// 	public CanonicalDataType withPrimitive(String name, PrimitiveDataType type);
// 	
// 	public CanonicalDataType withPrimitive(String name, PrimitiveDataType type, Cardinality cardinality);
// 
// 	public CanonicalDataType withReference(String name, CanonicalDataType type);
// 
// 	public CanonicalDataType withReference(String name, CanonicalDataType type, Cardinality cardinality);
// 
// }


// Path: src/main/java/com/modelsolv/kaboom/model/resource/ResourceDataModel.java
import com.modelsolv.kaboom.model.canonical.CDMPrimitiveProperty;
import com.modelsolv.kaboom.model.canonical.CDMProperty;
import com.modelsolv.kaboom.model.canonical.CDMReferenceProperty;
import com.modelsolv.kaboom.model.canonical.CanonicalDataType;

/*******************************************************************************
 * Copyright (c) 2014 ModelSolv, Inc. and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     ModelSolv, Inc. - initial API and implementation.
 *******************************************************************************/
package com.modelsolv.kaboom.model.resource;


public interface ResourceDataModel {

	public CanonicalDataType getCanonicalDataType();

	public void setCanonicalDataType(CanonicalDataType type);

	public ResourceDataModel withCanonicalDataType(CanonicalDataType type);

	public Iterable<RDMProperty> getIncludedProperties();

	// Add a list of CDM properties from the CanonicalDataType
	public ResourceDataModel includingProperties(CDMProperty... properties);

	public ResourceDataModel includingProperties(String... properties);

	// Add Primitive Property from CDM Property
	public RDMPrimitiveProperty addPrimitiveProperty(
			CDMPrimitiveProperty property);