Commit 8f8ce760 authored by Erwan Bousse's avatar Erwan Bousse
Browse files

Forgot to re-add modules

parent c4e89b54
/*******************************************************************************
* Copyright (c) 2014 Université de Rennes 1.
* 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:
* Erwan Bousse - initial API and implementation
******************************************************************************/
package fr.inria.diverse.cloning.runtime.common;
/**
* From a cloning kind point of view a class is either
* - completely readonly (no property change change), thus no need to clone it
* - completely mutable (all properties can change), thus must be cloned completely
* - partially mutable (some properties can change) OR can reach a mutable , thus can be cloned partially or completely
* @author ebousse
*
*/
public enum ClassTag {
COMPLETELY_SHAREABLE,
NOT_SHAREABLE,
PARTIALLY_SHAREABLE,
}
/*******************************************************************************
* Copyright (c) 2014 Université de Rennes 1.
* 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:
* Erwan Bousse - initial API and implementation
******************************************************************************/
package fr.inria.diverse.cloning.runtime.common;
import fr.inria.diverse.cloning.runtime.emfextension.impl.LooseCopier;
public interface CloningMaterial {
public MetamodelTags getTags();
public LooseCopier createCopier();
}
/*******************************************************************************
* Copyright (c) 2014 Université de Rennes 1.
* 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:
* Erwan Bousse - initial API and implementation
******************************************************************************/
package fr.inria.diverse.cloning.runtime.common;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EStructuralFeature;
/**
* Singleton class that stores the cloning tags of a given metamodel for a given cloning technique.
*
* @author ebousse
*
*/
public interface MetamodelTags {
public ClassTag getTagOf(EClass eClass);
public boolean mayTagClassesShareable();
public boolean isPropertyShareable(EStructuralFeature prop);
/**
* Number of _completely_ shareable classes / total classes
* @return
*/
public double getShareableClassesRatio();
/**
* Number of _partially_ shareable classes / total classes
* @return
*/
public double getPartShareableClassesRatio();
/**
* Number of shareable properties in shareable classes / total properties
* @return
*/
public double getIsolatedShareablePropertiesRatio();
/**
* Number of shareable properties per part shareable classe
* @return
*/
public double getShareablePropertiesInPartShareableClassesDensity();
/**
* Number of shareable properties per shareable classe
* @return
*/
public double getShareablePropertiesInShareableClassesDensity();
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment