From 8f7e35e31a8a531d5aff8d787b5a4aeced204f74 Mon Sep 17 00:00:00 2001
From: Stefan Herrnleben <s.herrnleben@syslex.de>
Date: Sat, 9 Sep 2017 01:46:13 +0200
Subject: [PATCH] add default nested entities in adaptable entities

---
 .../model/DNIMM3AP.xcore                      |   9 +
 .../plugin.properties                         |   9 +
 .../descartes/dni/dnimm3ap/AdaptableLink.java |  54 ++++
 .../dnimm3ap/AdaptableNetworkInterface.java   |  27 ++
 .../descartes/dni/dnimm3ap/AdaptableNode.java | 108 +++++++
 .../dnimm3ap/AdaptableSdnNodePerformance.java |  54 ++++
 .../descartes/dni/dnimm3ap/DNIAPPackage.java  | 274 +++++++++++++++++-
 .../dni/dnimm3ap/impl/AdaptableLinkImpl.java  | 120 ++++++++
 .../impl/AdaptableNetworkInterfaceImpl.java   |  60 ++++
 .../dni/dnimm3ap/impl/AdaptableNodeImpl.java  | 240 +++++++++++++++
 .../impl/AdaptableSdnNodePerformanceImpl.java | 120 ++++++++
 .../dni/dnimm3ap/impl/DNIAPPackageImpl.java   | 113 +++++++-
 .../provider/AdaptableLinkItemProvider.java   |  46 +++
 ...AdaptableNetworkInterfaceItemProvider.java |  23 ++
 .../provider/AdaptableNodeItemProvider.java   |  92 ++++++
 ...aptableSdnNodePerformanceItemProvider.java |  46 +++
 16 files changed, 1377 insertions(+), 18 deletions(-)

diff --git a/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore b/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore
index 0dc61510..7e48a6c1 100644
--- a/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore
+++ b/tools.descartes.dni.adaptation/model/DNIMM3AP.xcore
@@ -43,9 +43,13 @@ class AdaptableNode extends IAdaptableEntity<tools.descartes.dni.dnimm3.NodeType
 		}
 	}
 	refers AdaptableEndPerformance[] endPerformance
+	refers AdaptableEndPerformance endPerformanceDefault
 	refers AdaptableIntermediatePerformance[] intermediatePerformance
+	refers AdaptableIntermediatePerformance intermediatePerformanceDefault
 	refers AdaptableSdnNodePerformance[] sdnNodePerformance
+	refers AdaptableSdnNodePerformance sdnNodePerformanceDefault
 	refers AdaptableNetworkInterface[] networkInterface
+	refers AdaptableNetworkInterface networkInterfaceDefault
 	refers NodeAdaptationGroup adaptationGroup opposite items
 }
 
@@ -58,7 +62,9 @@ class AdaptableLink extends IAdaptableEntity<tools.descartes.dni.dnimm3.LinkType
 		}
 	}
 	refers AdaptableLinkPerformance[] linkPerformance
+	refers AdaptableLinkPerformance linkPerformanceDefault
 	refers AdaptableNetworkInterface[] networkInterface
+	refers AdaptableNetworkInterface networkInterfaceDefault
 	refers LinkAdaptationGroup adaptationGroup opposite items
 }
 
@@ -107,7 +113,9 @@ class AdaptableSdnNodePerformance extends IAdaptableEntity<tools.descartes.dni.d
 		}
 	}
 	refers AdaptableIntermediatePerformance[] softwareSwitchingPerformance
+	refers AdaptableIntermediatePerformance softwareSwitchingPerformanceDefault
 	refers AdaptableIntermediatePerformance[] hardwareSwitchingPerformance
+	refers AdaptableIntermediatePerformance hardwareSwitchingPerformanceDefault
 }
 
 class AdaptableNetworkInterface extends IAdaptableEntity<tools.descartes.dni.dnimm3.NetworkInterfaceType> {
@@ -119,6 +127,7 @@ class AdaptableNetworkInterface extends IAdaptableEntity<tools.descartes.dni.dni
 		}
 	}
 	refers AdaptableNetworkInterfacePerformance[] networkInterfacePerformance
+	refers AdaptableNetworkInterfacePerformance networkInterfacePerformanceDefault
 }
 
 class AdaptableNetworkInterfacePerformance extends IAdaptableEntity<tools.descartes.dni.dnimm3.NetworkInterfacePerformanceType> {
diff --git a/tools.descartes.dni.adaptation/plugin.properties b/tools.descartes.dni.adaptation/plugin.properties
index 6067d40c..b0db0fec 100644
--- a/tools.descartes.dni.adaptation/plugin.properties
+++ b/tools.descartes.dni.adaptation/plugin.properties
@@ -430,3 +430,12 @@ _UI_AdaptableDependency_parameter_feature = Parameter
 _UI_AlternativeVariableSet_alternative_feature = Alternative
 _UI_AdaptableConstantLongVariable_type = Adaptable Constant Long Variable
 _UI_AdaptableConstantDoubleVariable_type = Adaptable Constant Double Variable
+_UI_AdaptableLink_linkPerformanceDefault_feature = Link Performance Default
+_UI_AdaptableLink_networkInterfaceDefault_feature = Network Interface Default
+_UI_AdaptableNode_endPerformanceDefault_feature = End Performance Default
+_UI_AdaptableNode_intermediatePerformanceDefault_feature = Intermediate Performance Default
+_UI_AdaptableNode_sdnNodePerformanceDefault_feature = Sdn Node Performance Default
+_UI_AdaptableNode_networkInterfaceDefault_feature = Network Interface Default
+_UI_AdaptableSdnNodePerformance_softwareSwitchingPerformanceDefault_feature = Software Switching Performance Default
+_UI_AdaptableSdnNodePerformance_hardwareSwitchingPerformanceDefault_feature = Hardware Switching Performance Default
+_UI_AdaptableNetworkInterface_networkInterfacePerformanceDefault_feature = Network Interface Performance Default
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLink.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLink.java
index b875a263..0404aad1 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLink.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableLink.java
@@ -17,7 +17,9 @@ import tools.descartes.dni.dnimm3.LinkType;
  * <ul>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getName <em>Name</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getLinkPerformance <em>Link Performance</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getLinkPerformanceDefault <em>Link Performance Default</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getNetworkInterface <em>Network Interface</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getNetworkInterfaceDefault <em>Network Interface Default</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getAdaptationGroup <em>Adaptation Group</em>}</li>
  * </ul>
  *
@@ -58,6 +60,32 @@ public interface AdaptableLink extends IAdaptableEntity<LinkType>, IAdaptableGro
 	 */
 	List<AdaptableLinkPerformance> getLinkPerformance();
 
+	/**
+	 * Returns the value of the '<em><b>Link Performance Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Link Performance Default</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Link Performance Default</em>' reference.
+	 * @see #setLinkPerformanceDefault(AdaptableLinkPerformance)
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLink_LinkPerformanceDefault()
+	 * @model
+	 * @generated
+	 */
+	AdaptableLinkPerformance getLinkPerformanceDefault();
+
+	/**
+	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getLinkPerformanceDefault <em>Link Performance Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Link Performance Default</em>' reference.
+	 * @see #getLinkPerformanceDefault()
+	 * @generated
+	 */
+	void setLinkPerformanceDefault(AdaptableLinkPerformance value);
+
 	/**
 	 * Returns the value of the '<em><b>Network Interface</b></em>' reference list.
 	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface}.
@@ -74,6 +102,32 @@ public interface AdaptableLink extends IAdaptableEntity<LinkType>, IAdaptableGro
 	 */
 	List<AdaptableNetworkInterface> getNetworkInterface();
 
+	/**
+	 * Returns the value of the '<em><b>Network Interface Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Network Interface Default</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Network Interface Default</em>' reference.
+	 * @see #setNetworkInterfaceDefault(AdaptableNetworkInterface)
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableLink_NetworkInterfaceDefault()
+	 * @model
+	 * @generated
+	 */
+	AdaptableNetworkInterface getNetworkInterfaceDefault();
+
+	/**
+	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getNetworkInterfaceDefault <em>Network Interface Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Network Interface Default</em>' reference.
+	 * @see #getNetworkInterfaceDefault()
+	 * @generated
+	 */
+	void setNetworkInterfaceDefault(AdaptableNetworkInterface value);
+
 	/**
 	 * Returns the value of the '<em><b>Adaptation Group</b></em>' reference.
 	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3ap.LinkAdaptationGroup#getItems <em>Items</em>}'.
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterface.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterface.java
index d25f7dc9..ee87affa 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterface.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNetworkInterface.java
@@ -17,6 +17,7 @@ import tools.descartes.dni.dnimm3.NetworkInterfaceType;
  * <ul>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface#getName <em>Name</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface#getNetworkInterfacePerformance <em>Network Interface Performance</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface#getNetworkInterfacePerformanceDefault <em>Network Interface Performance Default</em>}</li>
  * </ul>
  *
  * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNetworkInterface()
@@ -56,4 +57,30 @@ public interface AdaptableNetworkInterface extends IAdaptableEntity<NetworkInter
 	 */
 	List<AdaptableNetworkInterfacePerformance> getNetworkInterfacePerformance();
 
+	/**
+	 * Returns the value of the '<em><b>Network Interface Performance Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Network Interface Performance Default</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Network Interface Performance Default</em>' reference.
+	 * @see #setNetworkInterfacePerformanceDefault(AdaptableNetworkInterfacePerformance)
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNetworkInterface_NetworkInterfacePerformanceDefault()
+	 * @model
+	 * @generated
+	 */
+	AdaptableNetworkInterfacePerformance getNetworkInterfacePerformanceDefault();
+
+	/**
+	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface#getNetworkInterfacePerformanceDefault <em>Network Interface Performance Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Network Interface Performance Default</em>' reference.
+	 * @see #getNetworkInterfacePerformanceDefault()
+	 * @generated
+	 */
+	void setNetworkInterfacePerformanceDefault(AdaptableNetworkInterfacePerformance value);
+
 } // AdaptableNetworkInterface
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNode.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNode.java
index 2517e36e..3ee31c38 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNode.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableNode.java
@@ -17,9 +17,13 @@ import tools.descartes.dni.dnimm3.NodeType;
  * <ul>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getName <em>Name</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getEndPerformance <em>End Performance</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getEndPerformanceDefault <em>End Performance Default</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getIntermediatePerformance <em>Intermediate Performance</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getIntermediatePerformanceDefault <em>Intermediate Performance Default</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getSdnNodePerformance <em>Sdn Node Performance</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getSdnNodePerformanceDefault <em>Sdn Node Performance Default</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getNetworkInterface <em>Network Interface</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getNetworkInterfaceDefault <em>Network Interface Default</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getAdaptationGroup <em>Adaptation Group</em>}</li>
  * </ul>
  *
@@ -60,6 +64,32 @@ public interface AdaptableNode extends IAdaptableEntity<NodeType>, IAdaptableGro
 	 */
 	List<AdaptableEndPerformance> getEndPerformance();
 
+	/**
+	 * Returns the value of the '<em><b>End Performance Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>End Performance Default</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>End Performance Default</em>' reference.
+	 * @see #setEndPerformanceDefault(AdaptableEndPerformance)
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNode_EndPerformanceDefault()
+	 * @model
+	 * @generated
+	 */
+	AdaptableEndPerformance getEndPerformanceDefault();
+
+	/**
+	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getEndPerformanceDefault <em>End Performance Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>End Performance Default</em>' reference.
+	 * @see #getEndPerformanceDefault()
+	 * @generated
+	 */
+	void setEndPerformanceDefault(AdaptableEndPerformance value);
+
 	/**
 	 * Returns the value of the '<em><b>Intermediate Performance</b></em>' reference list.
 	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance}.
@@ -76,6 +106,32 @@ public interface AdaptableNode extends IAdaptableEntity<NodeType>, IAdaptableGro
 	 */
 	List<AdaptableIntermediatePerformance> getIntermediatePerformance();
 
+	/**
+	 * Returns the value of the '<em><b>Intermediate Performance Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Intermediate Performance Default</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Intermediate Performance Default</em>' reference.
+	 * @see #setIntermediatePerformanceDefault(AdaptableIntermediatePerformance)
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNode_IntermediatePerformanceDefault()
+	 * @model
+	 * @generated
+	 */
+	AdaptableIntermediatePerformance getIntermediatePerformanceDefault();
+
+	/**
+	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getIntermediatePerformanceDefault <em>Intermediate Performance Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Intermediate Performance Default</em>' reference.
+	 * @see #getIntermediatePerformanceDefault()
+	 * @generated
+	 */
+	void setIntermediatePerformanceDefault(AdaptableIntermediatePerformance value);
+
 	/**
 	 * Returns the value of the '<em><b>Sdn Node Performance</b></em>' reference list.
 	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance}.
@@ -92,6 +148,32 @@ public interface AdaptableNode extends IAdaptableEntity<NodeType>, IAdaptableGro
 	 */
 	List<AdaptableSdnNodePerformance> getSdnNodePerformance();
 
+	/**
+	 * Returns the value of the '<em><b>Sdn Node Performance Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Sdn Node Performance Default</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sdn Node Performance Default</em>' reference.
+	 * @see #setSdnNodePerformanceDefault(AdaptableSdnNodePerformance)
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNode_SdnNodePerformanceDefault()
+	 * @model
+	 * @generated
+	 */
+	AdaptableSdnNodePerformance getSdnNodePerformanceDefault();
+
+	/**
+	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getSdnNodePerformanceDefault <em>Sdn Node Performance Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sdn Node Performance Default</em>' reference.
+	 * @see #getSdnNodePerformanceDefault()
+	 * @generated
+	 */
+	void setSdnNodePerformanceDefault(AdaptableSdnNodePerformance value);
+
 	/**
 	 * Returns the value of the '<em><b>Network Interface</b></em>' reference list.
 	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface}.
@@ -108,6 +190,32 @@ public interface AdaptableNode extends IAdaptableEntity<NodeType>, IAdaptableGro
 	 */
 	List<AdaptableNetworkInterface> getNetworkInterface();
 
+	/**
+	 * Returns the value of the '<em><b>Network Interface Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Network Interface Default</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Network Interface Default</em>' reference.
+	 * @see #setNetworkInterfaceDefault(AdaptableNetworkInterface)
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableNode_NetworkInterfaceDefault()
+	 * @model
+	 * @generated
+	 */
+	AdaptableNetworkInterface getNetworkInterfaceDefault();
+
+	/**
+	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getNetworkInterfaceDefault <em>Network Interface Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Network Interface Default</em>' reference.
+	 * @see #getNetworkInterfaceDefault()
+	 * @generated
+	 */
+	void setNetworkInterfaceDefault(AdaptableNetworkInterface value);
+
 	/**
 	 * Returns the value of the '<em><b>Adaptation Group</b></em>' reference.
 	 * It is bidirectional and its opposite is '{@link tools.descartes.dni.dnimm3ap.NodeAdaptationGroup#getItems <em>Items</em>}'.
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableSdnNodePerformance.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableSdnNodePerformance.java
index 8fac6ba6..198d4594 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableSdnNodePerformance.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/AdaptableSdnNodePerformance.java
@@ -17,7 +17,9 @@ import tools.descartes.dni.dnimm3.SdnNodePerformanceType;
  * <ul>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getName <em>Name</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getSoftwareSwitchingPerformance <em>Software Switching Performance</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getSoftwareSwitchingPerformanceDefault <em>Software Switching Performance Default</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getHardwareSwitchingPerformance <em>Hardware Switching Performance</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getHardwareSwitchingPerformanceDefault <em>Hardware Switching Performance Default</em>}</li>
  * </ul>
  *
  * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableSdnNodePerformance()
@@ -57,6 +59,32 @@ public interface AdaptableSdnNodePerformance extends IAdaptableEntity<SdnNodePer
 	 */
 	List<AdaptableIntermediatePerformance> getSoftwareSwitchingPerformance();
 
+	/**
+	 * Returns the value of the '<em><b>Software Switching Performance Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Software Switching Performance Default</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Software Switching Performance Default</em>' reference.
+	 * @see #setSoftwareSwitchingPerformanceDefault(AdaptableIntermediatePerformance)
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableSdnNodePerformance_SoftwareSwitchingPerformanceDefault()
+	 * @model
+	 * @generated
+	 */
+	AdaptableIntermediatePerformance getSoftwareSwitchingPerformanceDefault();
+
+	/**
+	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getSoftwareSwitchingPerformanceDefault <em>Software Switching Performance Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Software Switching Performance Default</em>' reference.
+	 * @see #getSoftwareSwitchingPerformanceDefault()
+	 * @generated
+	 */
+	void setSoftwareSwitchingPerformanceDefault(AdaptableIntermediatePerformance value);
+
 	/**
 	 * Returns the value of the '<em><b>Hardware Switching Performance</b></em>' reference list.
 	 * The list contents are of type {@link tools.descartes.dni.dnimm3ap.AdaptableIntermediatePerformance}.
@@ -73,4 +101,30 @@ public interface AdaptableSdnNodePerformance extends IAdaptableEntity<SdnNodePer
 	 */
 	List<AdaptableIntermediatePerformance> getHardwareSwitchingPerformance();
 
+	/**
+	 * Returns the value of the '<em><b>Hardware Switching Performance Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Hardware Switching Performance Default</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Hardware Switching Performance Default</em>' reference.
+	 * @see #setHardwareSwitchingPerformanceDefault(AdaptableIntermediatePerformance)
+	 * @see tools.descartes.dni.dnimm3ap.DNIAPPackage#getAdaptableSdnNodePerformance_HardwareSwitchingPerformanceDefault()
+	 * @model
+	 * @generated
+	 */
+	AdaptableIntermediatePerformance getHardwareSwitchingPerformanceDefault();
+
+	/**
+	 * Sets the value of the '{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getHardwareSwitchingPerformanceDefault <em>Hardware Switching Performance Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Hardware Switching Performance Default</em>' reference.
+	 * @see #getHardwareSwitchingPerformanceDefault()
+	 * @generated
+	 */
+	void setHardwareSwitchingPerformanceDefault(AdaptableIntermediatePerformance value);
+
 } // AdaptableSdnNodePerformance
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java
index 24c5d974..f2871bf6 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/DNIAPPackage.java
@@ -371,6 +371,15 @@ public interface DNIAPPackage extends EPackage {
 	 */
 	int ADAPTABLE_NODE__END_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 1;
 
+	/**
+	 * The feature id for the '<em><b>End Performance Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADAPTABLE_NODE__END_PERFORMANCE_DEFAULT = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
+
 	/**
 	 * The feature id for the '<em><b>Intermediate Performance</b></em>' reference list.
 	 * <!-- begin-user-doc -->
@@ -378,7 +387,16 @@ public interface DNIAPPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
+	int ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Intermediate Performance Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE_DEFAULT = IADAPTABLE_ENTITY_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Sdn Node Performance</b></em>' reference list.
@@ -387,7 +405,16 @@ public interface DNIAPPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTABLE_NODE__SDN_NODE_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 3;
+	int ADAPTABLE_NODE__SDN_NODE_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Sdn Node Performance Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADAPTABLE_NODE__SDN_NODE_PERFORMANCE_DEFAULT = IADAPTABLE_ENTITY_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Network Interface</b></em>' reference list.
@@ -396,7 +423,16 @@ public interface DNIAPPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTABLE_NODE__NETWORK_INTERFACE = IADAPTABLE_ENTITY_FEATURE_COUNT + 4;
+	int ADAPTABLE_NODE__NETWORK_INTERFACE = IADAPTABLE_ENTITY_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Network Interface Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADAPTABLE_NODE__NETWORK_INTERFACE_DEFAULT = IADAPTABLE_ENTITY_FEATURE_COUNT + 8;
 
 	/**
 	 * The feature id for the '<em><b>Adaptation Group</b></em>' reference.
@@ -405,7 +441,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTABLE_NODE__ADAPTATION_GROUP = IADAPTABLE_ENTITY_FEATURE_COUNT + 5;
+	int ADAPTABLE_NODE__ADAPTATION_GROUP = IADAPTABLE_ENTITY_FEATURE_COUNT + 9;
 
 	/**
 	 * The number of structural features of the '<em>Adaptable Node</em>' class.
@@ -414,7 +450,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTABLE_NODE_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 6;
+	int ADAPTABLE_NODE_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 10;
 
 	/**
 	 * The number of operations of the '<em>Adaptable Node</em>' class.
@@ -471,6 +507,15 @@ public interface DNIAPPackage extends EPackage {
 	 */
 	int ADAPTABLE_LINK__LINK_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 1;
 
+	/**
+	 * The feature id for the '<em><b>Link Performance Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADAPTABLE_LINK__LINK_PERFORMANCE_DEFAULT = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
+
 	/**
 	 * The feature id for the '<em><b>Network Interface</b></em>' reference list.
 	 * <!-- begin-user-doc -->
@@ -478,7 +523,16 @@ public interface DNIAPPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTABLE_LINK__NETWORK_INTERFACE = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
+	int ADAPTABLE_LINK__NETWORK_INTERFACE = IADAPTABLE_ENTITY_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Network Interface Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADAPTABLE_LINK__NETWORK_INTERFACE_DEFAULT = IADAPTABLE_ENTITY_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Adaptation Group</b></em>' reference.
@@ -487,7 +541,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTABLE_LINK__ADAPTATION_GROUP = IADAPTABLE_ENTITY_FEATURE_COUNT + 3;
+	int ADAPTABLE_LINK__ADAPTATION_GROUP = IADAPTABLE_ENTITY_FEATURE_COUNT + 5;
 
 	/**
 	 * The number of structural features of the '<em>Adaptable Link</em>' class.
@@ -496,7 +550,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTABLE_LINK_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 4;
+	int ADAPTABLE_LINK_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 6;
 
 	/**
 	 * The number of operations of the '<em>Adaptable Link</em>' class.
@@ -772,6 +826,15 @@ public interface DNIAPPackage extends EPackage {
 	 */
 	int ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 1;
 
+	/**
+	 * The feature id for the '<em><b>Software Switching Performance Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE_DEFAULT = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
+
 	/**
 	 * The feature id for the '<em><b>Hardware Switching Performance</b></em>' reference list.
 	 * <!-- begin-user-doc -->
@@ -779,7 +842,16 @@ public interface DNIAPPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
+	int ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Hardware Switching Performance Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE_DEFAULT = IADAPTABLE_ENTITY_FEATURE_COUNT + 4;
 
 	/**
 	 * The number of structural features of the '<em>Adaptable Sdn Node Performance</em>' class.
@@ -788,7 +860,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTABLE_SDN_NODE_PERFORMANCE_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 3;
+	int ADAPTABLE_SDN_NODE_PERFORMANCE_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Adaptable Sdn Node Performance</em>' class.
@@ -845,6 +917,15 @@ public interface DNIAPPackage extends EPackage {
 	 */
 	int ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE = IADAPTABLE_ENTITY_FEATURE_COUNT + 1;
 
+	/**
+	 * The feature id for the '<em><b>Network Interface Performance Default</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE_DEFAULT = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
+
 	/**
 	 * The number of structural features of the '<em>Adaptable Network Interface</em>' class.
 	 * <!-- begin-user-doc -->
@@ -852,7 +933,7 @@ public interface DNIAPPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int ADAPTABLE_NETWORK_INTERFACE_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 2;
+	int ADAPTABLE_NETWORK_INTERFACE_FEATURE_COUNT = IADAPTABLE_ENTITY_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>Adaptable Network Interface</em>' class.
@@ -1977,6 +2058,17 @@ public interface DNIAPPackage extends EPackage {
 	 */
 	EReference getAdaptableNode_EndPerformance();
 
+	/**
+	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getEndPerformanceDefault <em>End Performance Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>End Performance Default</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptableNode#getEndPerformanceDefault()
+	 * @see #getAdaptableNode()
+	 * @generated
+	 */
+	EReference getAdaptableNode_EndPerformanceDefault();
+
 	/**
 	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getIntermediatePerformance <em>Intermediate Performance</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1988,6 +2080,17 @@ public interface DNIAPPackage extends EPackage {
 	 */
 	EReference getAdaptableNode_IntermediatePerformance();
 
+	/**
+	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getIntermediatePerformanceDefault <em>Intermediate Performance Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Intermediate Performance Default</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptableNode#getIntermediatePerformanceDefault()
+	 * @see #getAdaptableNode()
+	 * @generated
+	 */
+	EReference getAdaptableNode_IntermediatePerformanceDefault();
+
 	/**
 	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getSdnNodePerformance <em>Sdn Node Performance</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1999,6 +2102,17 @@ public interface DNIAPPackage extends EPackage {
 	 */
 	EReference getAdaptableNode_SdnNodePerformance();
 
+	/**
+	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getSdnNodePerformanceDefault <em>Sdn Node Performance Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Sdn Node Performance Default</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptableNode#getSdnNodePerformanceDefault()
+	 * @see #getAdaptableNode()
+	 * @generated
+	 */
+	EReference getAdaptableNode_SdnNodePerformanceDefault();
+
 	/**
 	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getNetworkInterface <em>Network Interface</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2010,6 +2124,17 @@ public interface DNIAPPackage extends EPackage {
 	 */
 	EReference getAdaptableNode_NetworkInterface();
 
+	/**
+	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getNetworkInterfaceDefault <em>Network Interface Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Network Interface Default</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptableNode#getNetworkInterfaceDefault()
+	 * @see #getAdaptableNode()
+	 * @generated
+	 */
+	EReference getAdaptableNode_NetworkInterfaceDefault();
+
 	/**
 	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.AdaptableNode#getAdaptationGroup <em>Adaptation Group</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2053,6 +2178,17 @@ public interface DNIAPPackage extends EPackage {
 	 */
 	EReference getAdaptableLink_LinkPerformance();
 
+	/**
+	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getLinkPerformanceDefault <em>Link Performance Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Link Performance Default</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptableLink#getLinkPerformanceDefault()
+	 * @see #getAdaptableLink()
+	 * @generated
+	 */
+	EReference getAdaptableLink_LinkPerformanceDefault();
+
 	/**
 	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getNetworkInterface <em>Network Interface</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2064,6 +2200,17 @@ public interface DNIAPPackage extends EPackage {
 	 */
 	EReference getAdaptableLink_NetworkInterface();
 
+	/**
+	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getNetworkInterfaceDefault <em>Network Interface Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Network Interface Default</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptableLink#getNetworkInterfaceDefault()
+	 * @see #getAdaptableLink()
+	 * @generated
+	 */
+	EReference getAdaptableLink_NetworkInterfaceDefault();
+
 	/**
 	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.AdaptableLink#getAdaptationGroup <em>Adaptation Group</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2236,6 +2383,17 @@ public interface DNIAPPackage extends EPackage {
 	 */
 	EReference getAdaptableSdnNodePerformance_SoftwareSwitchingPerformance();
 
+	/**
+	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getSoftwareSwitchingPerformanceDefault <em>Software Switching Performance Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Software Switching Performance Default</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getSoftwareSwitchingPerformanceDefault()
+	 * @see #getAdaptableSdnNodePerformance()
+	 * @generated
+	 */
+	EReference getAdaptableSdnNodePerformance_SoftwareSwitchingPerformanceDefault();
+
 	/**
 	 * Returns the meta object for the reference list '{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getHardwareSwitchingPerformance <em>Hardware Switching Performance</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2247,6 +2405,17 @@ public interface DNIAPPackage extends EPackage {
 	 */
 	EReference getAdaptableSdnNodePerformance_HardwareSwitchingPerformance();
 
+	/**
+	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getHardwareSwitchingPerformanceDefault <em>Hardware Switching Performance Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Hardware Switching Performance Default</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptableSdnNodePerformance#getHardwareSwitchingPerformanceDefault()
+	 * @see #getAdaptableSdnNodePerformance()
+	 * @generated
+	 */
+	EReference getAdaptableSdnNodePerformance_HardwareSwitchingPerformanceDefault();
+
 	/**
 	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface <em>Adaptable Network Interface</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2279,6 +2448,17 @@ public interface DNIAPPackage extends EPackage {
 	 */
 	EReference getAdaptableNetworkInterface_NetworkInterfacePerformance();
 
+	/**
+	 * Returns the meta object for the reference '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface#getNetworkInterfacePerformanceDefault <em>Network Interface Performance Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Network Interface Performance Default</em>'.
+	 * @see tools.descartes.dni.dnimm3ap.AdaptableNetworkInterface#getNetworkInterfacePerformanceDefault()
+	 * @see #getAdaptableNetworkInterface()
+	 * @generated
+	 */
+	EReference getAdaptableNetworkInterface_NetworkInterfacePerformanceDefault();
+
 	/**
 	 * Returns the meta object for class '{@link tools.descartes.dni.dnimm3ap.AdaptableNetworkInterfacePerformance <em>Adaptable Network Interface Performance</em>}'.
 	 * <!-- begin-user-doc -->
@@ -2786,6 +2966,14 @@ public interface DNIAPPackage extends EPackage {
 		 */
 		EReference ADAPTABLE_NODE__END_PERFORMANCE = eINSTANCE.getAdaptableNode_EndPerformance();
 
+		/**
+		 * The meta object literal for the '<em><b>End Performance Default</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ADAPTABLE_NODE__END_PERFORMANCE_DEFAULT = eINSTANCE.getAdaptableNode_EndPerformanceDefault();
+
 		/**
 		 * The meta object literal for the '<em><b>Intermediate Performance</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
@@ -2794,6 +2982,14 @@ public interface DNIAPPackage extends EPackage {
 		 */
 		EReference ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE = eINSTANCE.getAdaptableNode_IntermediatePerformance();
 
+		/**
+		 * The meta object literal for the '<em><b>Intermediate Performance Default</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE_DEFAULT = eINSTANCE.getAdaptableNode_IntermediatePerformanceDefault();
+
 		/**
 		 * The meta object literal for the '<em><b>Sdn Node Performance</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
@@ -2802,6 +2998,14 @@ public interface DNIAPPackage extends EPackage {
 		 */
 		EReference ADAPTABLE_NODE__SDN_NODE_PERFORMANCE = eINSTANCE.getAdaptableNode_SdnNodePerformance();
 
+		/**
+		 * The meta object literal for the '<em><b>Sdn Node Performance Default</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ADAPTABLE_NODE__SDN_NODE_PERFORMANCE_DEFAULT = eINSTANCE.getAdaptableNode_SdnNodePerformanceDefault();
+
 		/**
 		 * The meta object literal for the '<em><b>Network Interface</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
@@ -2810,6 +3014,14 @@ public interface DNIAPPackage extends EPackage {
 		 */
 		EReference ADAPTABLE_NODE__NETWORK_INTERFACE = eINSTANCE.getAdaptableNode_NetworkInterface();
 
+		/**
+		 * The meta object literal for the '<em><b>Network Interface Default</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ADAPTABLE_NODE__NETWORK_INTERFACE_DEFAULT = eINSTANCE.getAdaptableNode_NetworkInterfaceDefault();
+
 		/**
 		 * The meta object literal for the '<em><b>Adaptation Group</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
@@ -2844,6 +3056,14 @@ public interface DNIAPPackage extends EPackage {
 		 */
 		EReference ADAPTABLE_LINK__LINK_PERFORMANCE = eINSTANCE.getAdaptableLink_LinkPerformance();
 
+		/**
+		 * The meta object literal for the '<em><b>Link Performance Default</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ADAPTABLE_LINK__LINK_PERFORMANCE_DEFAULT = eINSTANCE.getAdaptableLink_LinkPerformanceDefault();
+
 		/**
 		 * The meta object literal for the '<em><b>Network Interface</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
@@ -2852,6 +3072,14 @@ public interface DNIAPPackage extends EPackage {
 		 */
 		EReference ADAPTABLE_LINK__NETWORK_INTERFACE = eINSTANCE.getAdaptableLink_NetworkInterface();
 
+		/**
+		 * The meta object literal for the '<em><b>Network Interface Default</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ADAPTABLE_LINK__NETWORK_INTERFACE_DEFAULT = eINSTANCE.getAdaptableLink_NetworkInterfaceDefault();
+
 		/**
 		 * The meta object literal for the '<em><b>Adaptation Group</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
@@ -2988,6 +3216,14 @@ public interface DNIAPPackage extends EPackage {
 		 */
 		EReference ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE = eINSTANCE.getAdaptableSdnNodePerformance_SoftwareSwitchingPerformance();
 
+		/**
+		 * The meta object literal for the '<em><b>Software Switching Performance Default</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE_DEFAULT = eINSTANCE.getAdaptableSdnNodePerformance_SoftwareSwitchingPerformanceDefault();
+
 		/**
 		 * The meta object literal for the '<em><b>Hardware Switching Performance</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
@@ -2996,6 +3232,14 @@ public interface DNIAPPackage extends EPackage {
 		 */
 		EReference ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE = eINSTANCE.getAdaptableSdnNodePerformance_HardwareSwitchingPerformance();
 
+		/**
+		 * The meta object literal for the '<em><b>Hardware Switching Performance Default</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE_DEFAULT = eINSTANCE.getAdaptableSdnNodePerformance_HardwareSwitchingPerformanceDefault();
+
 		/**
 		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceImpl <em>Adaptable Network Interface</em>}' class.
 		 * <!-- begin-user-doc -->
@@ -3022,6 +3266,14 @@ public interface DNIAPPackage extends EPackage {
 		 */
 		EReference ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE = eINSTANCE.getAdaptableNetworkInterface_NetworkInterfacePerformance();
 
+		/**
+		 * The meta object literal for the '<em><b>Network Interface Performance Default</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE_DEFAULT = eINSTANCE.getAdaptableNetworkInterface_NetworkInterfacePerformanceDefault();
+
 		/**
 		 * The meta object literal for the '{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfacePerformanceImpl <em>Adaptable Network Interface Performance</em>}' class.
 		 * <!-- begin-user-doc -->
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkImpl.java
index 0d25b943..6e8cf72d 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkImpl.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableLinkImpl.java
@@ -41,7 +41,9 @@ import tools.descartes.dni.dnimm3ap.LinkAdaptationGroup;
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl#getEntityType <em>Entity Type</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl#getName <em>Name</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl#getLinkPerformance <em>Link Performance</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl#getLinkPerformanceDefault <em>Link Performance Default</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl#getNetworkInterface <em>Network Interface</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl#getNetworkInterfaceDefault <em>Network Interface Default</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableLinkImpl#getAdaptationGroup <em>Adaptation Group</em>}</li>
  * </ul>
  *
@@ -88,6 +90,16 @@ public class AdaptableLinkImpl extends MinimalEObjectImpl.Container implements A
 	 */
 	protected EList<AdaptableLinkPerformance> linkPerformance;
 
+	/**
+	 * The cached value of the '{@link #getLinkPerformanceDefault() <em>Link Performance Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLinkPerformanceDefault()
+	 * @generated
+	 * @ordered
+	 */
+	protected AdaptableLinkPerformance linkPerformanceDefault;
+
 	/**
 	 * The cached value of the '{@link #getNetworkInterface() <em>Network Interface</em>}' reference list.
 	 * <!-- begin-user-doc -->
@@ -98,6 +110,16 @@ public class AdaptableLinkImpl extends MinimalEObjectImpl.Container implements A
 	 */
 	protected EList<AdaptableNetworkInterface> networkInterface;
 
+	/**
+	 * The cached value of the '{@link #getNetworkInterfaceDefault() <em>Network Interface Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNetworkInterfaceDefault()
+	 * @generated
+	 * @ordered
+	 */
+	protected AdaptableNetworkInterface networkInterfaceDefault;
+
 	/**
 	 * The cached value of the '{@link #getAdaptationGroup() <em>Adaptation Group</em>}' reference.
 	 * <!-- begin-user-doc -->
@@ -205,6 +227,44 @@ public class AdaptableLinkImpl extends MinimalEObjectImpl.Container implements A
 		return linkPerformance;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableLinkPerformance getLinkPerformanceDefault() {
+		if (linkPerformanceDefault != null && linkPerformanceDefault.eIsProxy()) {
+			InternalEObject oldLinkPerformanceDefault = (InternalEObject)linkPerformanceDefault;
+			linkPerformanceDefault = (AdaptableLinkPerformance)eResolveProxy(oldLinkPerformanceDefault);
+			if (linkPerformanceDefault != oldLinkPerformanceDefault) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_LINK__LINK_PERFORMANCE_DEFAULT, oldLinkPerformanceDefault, linkPerformanceDefault));
+			}
+		}
+		return linkPerformanceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableLinkPerformance basicGetLinkPerformanceDefault() {
+		return linkPerformanceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLinkPerformanceDefault(AdaptableLinkPerformance newLinkPerformanceDefault) {
+		AdaptableLinkPerformance oldLinkPerformanceDefault = linkPerformanceDefault;
+		linkPerformanceDefault = newLinkPerformanceDefault;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_LINK__LINK_PERFORMANCE_DEFAULT, oldLinkPerformanceDefault, linkPerformanceDefault));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -217,6 +277,44 @@ public class AdaptableLinkImpl extends MinimalEObjectImpl.Container implements A
 		return networkInterface;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableNetworkInterface getNetworkInterfaceDefault() {
+		if (networkInterfaceDefault != null && networkInterfaceDefault.eIsProxy()) {
+			InternalEObject oldNetworkInterfaceDefault = (InternalEObject)networkInterfaceDefault;
+			networkInterfaceDefault = (AdaptableNetworkInterface)eResolveProxy(oldNetworkInterfaceDefault);
+			if (networkInterfaceDefault != oldNetworkInterfaceDefault) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE_DEFAULT, oldNetworkInterfaceDefault, networkInterfaceDefault));
+			}
+		}
+		return networkInterfaceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableNetworkInterface basicGetNetworkInterfaceDefault() {
+		return networkInterfaceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNetworkInterfaceDefault(AdaptableNetworkInterface newNetworkInterfaceDefault) {
+		AdaptableNetworkInterface oldNetworkInterfaceDefault = networkInterfaceDefault;
+		networkInterfaceDefault = newNetworkInterfaceDefault;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE_DEFAULT, oldNetworkInterfaceDefault, networkInterfaceDefault));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -326,8 +424,14 @@ public class AdaptableLinkImpl extends MinimalEObjectImpl.Container implements A
 				return getName();
 			case DNIAPPackage.ADAPTABLE_LINK__LINK_PERFORMANCE:
 				return getLinkPerformance();
+			case DNIAPPackage.ADAPTABLE_LINK__LINK_PERFORMANCE_DEFAULT:
+				if (resolve) return getLinkPerformanceDefault();
+				return basicGetLinkPerformanceDefault();
 			case DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE:
 				return getNetworkInterface();
+			case DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE_DEFAULT:
+				if (resolve) return getNetworkInterfaceDefault();
+				return basicGetNetworkInterfaceDefault();
 			case DNIAPPackage.ADAPTABLE_LINK__ADAPTATION_GROUP:
 				if (resolve) return getAdaptationGroup();
 				return basicGetAdaptationGroup();
@@ -355,10 +459,16 @@ public class AdaptableLinkImpl extends MinimalEObjectImpl.Container implements A
 				getLinkPerformance().clear();
 				getLinkPerformance().addAll((Collection<? extends AdaptableLinkPerformance>)newValue);
 				return;
+			case DNIAPPackage.ADAPTABLE_LINK__LINK_PERFORMANCE_DEFAULT:
+				setLinkPerformanceDefault((AdaptableLinkPerformance)newValue);
+				return;
 			case DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE:
 				getNetworkInterface().clear();
 				getNetworkInterface().addAll((Collection<? extends AdaptableNetworkInterface>)newValue);
 				return;
+			case DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE_DEFAULT:
+				setNetworkInterfaceDefault((AdaptableNetworkInterface)newValue);
+				return;
 			case DNIAPPackage.ADAPTABLE_LINK__ADAPTATION_GROUP:
 				setAdaptationGroup((LinkAdaptationGroup)newValue);
 				return;
@@ -383,9 +493,15 @@ public class AdaptableLinkImpl extends MinimalEObjectImpl.Container implements A
 			case DNIAPPackage.ADAPTABLE_LINK__LINK_PERFORMANCE:
 				getLinkPerformance().clear();
 				return;
+			case DNIAPPackage.ADAPTABLE_LINK__LINK_PERFORMANCE_DEFAULT:
+				setLinkPerformanceDefault((AdaptableLinkPerformance)null);
+				return;
 			case DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE:
 				getNetworkInterface().clear();
 				return;
+			case DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE_DEFAULT:
+				setNetworkInterfaceDefault((AdaptableNetworkInterface)null);
+				return;
 			case DNIAPPackage.ADAPTABLE_LINK__ADAPTATION_GROUP:
 				setAdaptationGroup((LinkAdaptationGroup)null);
 				return;
@@ -409,8 +525,12 @@ public class AdaptableLinkImpl extends MinimalEObjectImpl.Container implements A
 				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
 			case DNIAPPackage.ADAPTABLE_LINK__LINK_PERFORMANCE:
 				return linkPerformance != null && !linkPerformance.isEmpty();
+			case DNIAPPackage.ADAPTABLE_LINK__LINK_PERFORMANCE_DEFAULT:
+				return linkPerformanceDefault != null;
 			case DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE:
 				return networkInterface != null && !networkInterface.isEmpty();
+			case DNIAPPackage.ADAPTABLE_LINK__NETWORK_INTERFACE_DEFAULT:
+				return networkInterfaceDefault != null;
 			case DNIAPPackage.ADAPTABLE_LINK__ADAPTATION_GROUP:
 				return adaptationGroup != null;
 		}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfaceImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfaceImpl.java
index d8f6d78a..ea2fbd1f 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfaceImpl.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNetworkInterfaceImpl.java
@@ -39,6 +39,7 @@ import tools.descartes.dni.dnimm3ap.DNIAPPackage;
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceImpl#getEntityType <em>Entity Type</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceImpl#getName <em>Name</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceImpl#getNetworkInterfacePerformance <em>Network Interface Performance</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNetworkInterfaceImpl#getNetworkInterfacePerformanceDefault <em>Network Interface Performance Default</em>}</li>
  * </ul>
  *
  * @generated
@@ -84,6 +85,16 @@ public class AdaptableNetworkInterfaceImpl extends MinimalEObjectImpl.Container
 	 */
 	protected EList<AdaptableNetworkInterfacePerformance> networkInterfacePerformance;
 
+	/**
+	 * The cached value of the '{@link #getNetworkInterfacePerformanceDefault() <em>Network Interface Performance Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNetworkInterfacePerformanceDefault()
+	 * @generated
+	 * @ordered
+	 */
+	protected AdaptableNetworkInterfacePerformance networkInterfacePerformanceDefault;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -181,6 +192,44 @@ public class AdaptableNetworkInterfaceImpl extends MinimalEObjectImpl.Container
 		return networkInterfacePerformance;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableNetworkInterfacePerformance getNetworkInterfacePerformanceDefault() {
+		if (networkInterfacePerformanceDefault != null && networkInterfacePerformanceDefault.eIsProxy()) {
+			InternalEObject oldNetworkInterfacePerformanceDefault = (InternalEObject)networkInterfacePerformanceDefault;
+			networkInterfacePerformanceDefault = (AdaptableNetworkInterfacePerformance)eResolveProxy(oldNetworkInterfacePerformanceDefault);
+			if (networkInterfacePerformanceDefault != oldNetworkInterfacePerformanceDefault) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE_DEFAULT, oldNetworkInterfacePerformanceDefault, networkInterfacePerformanceDefault));
+			}
+		}
+		return networkInterfacePerformanceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableNetworkInterfacePerformance basicGetNetworkInterfacePerformanceDefault() {
+		return networkInterfacePerformanceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNetworkInterfacePerformanceDefault(AdaptableNetworkInterfacePerformance newNetworkInterfacePerformanceDefault) {
+		AdaptableNetworkInterfacePerformance oldNetworkInterfacePerformanceDefault = networkInterfacePerformanceDefault;
+		networkInterfacePerformanceDefault = newNetworkInterfacePerformanceDefault;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE_DEFAULT, oldNetworkInterfacePerformanceDefault, networkInterfacePerformanceDefault));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -212,6 +261,9 @@ public class AdaptableNetworkInterfaceImpl extends MinimalEObjectImpl.Container
 				return getName();
 			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE:
 				return getNetworkInterfacePerformance();
+			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE_DEFAULT:
+				if (resolve) return getNetworkInterfacePerformanceDefault();
+				return basicGetNetworkInterfacePerformanceDefault();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -236,6 +288,9 @@ public class AdaptableNetworkInterfaceImpl extends MinimalEObjectImpl.Container
 				getNetworkInterfacePerformance().clear();
 				getNetworkInterfacePerformance().addAll((Collection<? extends AdaptableNetworkInterfacePerformance>)newValue);
 				return;
+			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE_DEFAULT:
+				setNetworkInterfacePerformanceDefault((AdaptableNetworkInterfacePerformance)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -257,6 +312,9 @@ public class AdaptableNetworkInterfaceImpl extends MinimalEObjectImpl.Container
 			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE:
 				getNetworkInterfacePerformance().clear();
 				return;
+			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE_DEFAULT:
+				setNetworkInterfacePerformanceDefault((AdaptableNetworkInterfacePerformance)null);
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -277,6 +335,8 @@ public class AdaptableNetworkInterfaceImpl extends MinimalEObjectImpl.Container
 				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
 			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE:
 				return networkInterfacePerformance != null && !networkInterfacePerformance.isEmpty();
+			case DNIAPPackage.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE_DEFAULT:
+				return networkInterfacePerformanceDefault != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNodeImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNodeImpl.java
index 4d61df7b..92eaf9c8 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNodeImpl.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableNodeImpl.java
@@ -43,9 +43,13 @@ import tools.descartes.dni.dnimm3ap.NodeAdaptationGroup;
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getEntityType <em>Entity Type</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getName <em>Name</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getEndPerformance <em>End Performance</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getEndPerformanceDefault <em>End Performance Default</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getIntermediatePerformance <em>Intermediate Performance</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getIntermediatePerformanceDefault <em>Intermediate Performance Default</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getSdnNodePerformance <em>Sdn Node Performance</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getSdnNodePerformanceDefault <em>Sdn Node Performance Default</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getNetworkInterface <em>Network Interface</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getNetworkInterfaceDefault <em>Network Interface Default</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableNodeImpl#getAdaptationGroup <em>Adaptation Group</em>}</li>
  * </ul>
  *
@@ -92,6 +96,16 @@ public class AdaptableNodeImpl extends MinimalEObjectImpl.Container implements A
 	 */
 	protected EList<AdaptableEndPerformance> endPerformance;
 
+	/**
+	 * The cached value of the '{@link #getEndPerformanceDefault() <em>End Performance Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getEndPerformanceDefault()
+	 * @generated
+	 * @ordered
+	 */
+	protected AdaptableEndPerformance endPerformanceDefault;
+
 	/**
 	 * The cached value of the '{@link #getIntermediatePerformance() <em>Intermediate Performance</em>}' reference list.
 	 * <!-- begin-user-doc -->
@@ -102,6 +116,16 @@ public class AdaptableNodeImpl extends MinimalEObjectImpl.Container implements A
 	 */
 	protected EList<AdaptableIntermediatePerformance> intermediatePerformance;
 
+	/**
+	 * The cached value of the '{@link #getIntermediatePerformanceDefault() <em>Intermediate Performance Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIntermediatePerformanceDefault()
+	 * @generated
+	 * @ordered
+	 */
+	protected AdaptableIntermediatePerformance intermediatePerformanceDefault;
+
 	/**
 	 * The cached value of the '{@link #getSdnNodePerformance() <em>Sdn Node Performance</em>}' reference list.
 	 * <!-- begin-user-doc -->
@@ -112,6 +136,16 @@ public class AdaptableNodeImpl extends MinimalEObjectImpl.Container implements A
 	 */
 	protected EList<AdaptableSdnNodePerformance> sdnNodePerformance;
 
+	/**
+	 * The cached value of the '{@link #getSdnNodePerformanceDefault() <em>Sdn Node Performance Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSdnNodePerformanceDefault()
+	 * @generated
+	 * @ordered
+	 */
+	protected AdaptableSdnNodePerformance sdnNodePerformanceDefault;
+
 	/**
 	 * The cached value of the '{@link #getNetworkInterface() <em>Network Interface</em>}' reference list.
 	 * <!-- begin-user-doc -->
@@ -122,6 +156,16 @@ public class AdaptableNodeImpl extends MinimalEObjectImpl.Container implements A
 	 */
 	protected EList<AdaptableNetworkInterface> networkInterface;
 
+	/**
+	 * The cached value of the '{@link #getNetworkInterfaceDefault() <em>Network Interface Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNetworkInterfaceDefault()
+	 * @generated
+	 * @ordered
+	 */
+	protected AdaptableNetworkInterface networkInterfaceDefault;
+
 	/**
 	 * The cached value of the '{@link #getAdaptationGroup() <em>Adaptation Group</em>}' reference.
 	 * <!-- begin-user-doc -->
@@ -229,6 +273,44 @@ public class AdaptableNodeImpl extends MinimalEObjectImpl.Container implements A
 		return endPerformance;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableEndPerformance getEndPerformanceDefault() {
+		if (endPerformanceDefault != null && endPerformanceDefault.eIsProxy()) {
+			InternalEObject oldEndPerformanceDefault = (InternalEObject)endPerformanceDefault;
+			endPerformanceDefault = (AdaptableEndPerformance)eResolveProxy(oldEndPerformanceDefault);
+			if (endPerformanceDefault != oldEndPerformanceDefault) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_NODE__END_PERFORMANCE_DEFAULT, oldEndPerformanceDefault, endPerformanceDefault));
+			}
+		}
+		return endPerformanceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableEndPerformance basicGetEndPerformanceDefault() {
+		return endPerformanceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setEndPerformanceDefault(AdaptableEndPerformance newEndPerformanceDefault) {
+		AdaptableEndPerformance oldEndPerformanceDefault = endPerformanceDefault;
+		endPerformanceDefault = newEndPerformanceDefault;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_NODE__END_PERFORMANCE_DEFAULT, oldEndPerformanceDefault, endPerformanceDefault));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -241,6 +323,44 @@ public class AdaptableNodeImpl extends MinimalEObjectImpl.Container implements A
 		return intermediatePerformance;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableIntermediatePerformance getIntermediatePerformanceDefault() {
+		if (intermediatePerformanceDefault != null && intermediatePerformanceDefault.eIsProxy()) {
+			InternalEObject oldIntermediatePerformanceDefault = (InternalEObject)intermediatePerformanceDefault;
+			intermediatePerformanceDefault = (AdaptableIntermediatePerformance)eResolveProxy(oldIntermediatePerformanceDefault);
+			if (intermediatePerformanceDefault != oldIntermediatePerformanceDefault) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE_DEFAULT, oldIntermediatePerformanceDefault, intermediatePerformanceDefault));
+			}
+		}
+		return intermediatePerformanceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableIntermediatePerformance basicGetIntermediatePerformanceDefault() {
+		return intermediatePerformanceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIntermediatePerformanceDefault(AdaptableIntermediatePerformance newIntermediatePerformanceDefault) {
+		AdaptableIntermediatePerformance oldIntermediatePerformanceDefault = intermediatePerformanceDefault;
+		intermediatePerformanceDefault = newIntermediatePerformanceDefault;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE_DEFAULT, oldIntermediatePerformanceDefault, intermediatePerformanceDefault));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -253,6 +373,44 @@ public class AdaptableNodeImpl extends MinimalEObjectImpl.Container implements A
 		return sdnNodePerformance;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableSdnNodePerformance getSdnNodePerformanceDefault() {
+		if (sdnNodePerformanceDefault != null && sdnNodePerformanceDefault.eIsProxy()) {
+			InternalEObject oldSdnNodePerformanceDefault = (InternalEObject)sdnNodePerformanceDefault;
+			sdnNodePerformanceDefault = (AdaptableSdnNodePerformance)eResolveProxy(oldSdnNodePerformanceDefault);
+			if (sdnNodePerformanceDefault != oldSdnNodePerformanceDefault) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE_DEFAULT, oldSdnNodePerformanceDefault, sdnNodePerformanceDefault));
+			}
+		}
+		return sdnNodePerformanceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableSdnNodePerformance basicGetSdnNodePerformanceDefault() {
+		return sdnNodePerformanceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSdnNodePerformanceDefault(AdaptableSdnNodePerformance newSdnNodePerformanceDefault) {
+		AdaptableSdnNodePerformance oldSdnNodePerformanceDefault = sdnNodePerformanceDefault;
+		sdnNodePerformanceDefault = newSdnNodePerformanceDefault;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE_DEFAULT, oldSdnNodePerformanceDefault, sdnNodePerformanceDefault));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -265,6 +423,44 @@ public class AdaptableNodeImpl extends MinimalEObjectImpl.Container implements A
 		return networkInterface;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableNetworkInterface getNetworkInterfaceDefault() {
+		if (networkInterfaceDefault != null && networkInterfaceDefault.eIsProxy()) {
+			InternalEObject oldNetworkInterfaceDefault = (InternalEObject)networkInterfaceDefault;
+			networkInterfaceDefault = (AdaptableNetworkInterface)eResolveProxy(oldNetworkInterfaceDefault);
+			if (networkInterfaceDefault != oldNetworkInterfaceDefault) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE_DEFAULT, oldNetworkInterfaceDefault, networkInterfaceDefault));
+			}
+		}
+		return networkInterfaceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableNetworkInterface basicGetNetworkInterfaceDefault() {
+		return networkInterfaceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNetworkInterfaceDefault(AdaptableNetworkInterface newNetworkInterfaceDefault) {
+		AdaptableNetworkInterface oldNetworkInterfaceDefault = networkInterfaceDefault;
+		networkInterfaceDefault = newNetworkInterfaceDefault;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE_DEFAULT, oldNetworkInterfaceDefault, networkInterfaceDefault));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -374,12 +570,24 @@ public class AdaptableNodeImpl extends MinimalEObjectImpl.Container implements A
 				return getName();
 			case DNIAPPackage.ADAPTABLE_NODE__END_PERFORMANCE:
 				return getEndPerformance();
+			case DNIAPPackage.ADAPTABLE_NODE__END_PERFORMANCE_DEFAULT:
+				if (resolve) return getEndPerformanceDefault();
+				return basicGetEndPerformanceDefault();
 			case DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE:
 				return getIntermediatePerformance();
+			case DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE_DEFAULT:
+				if (resolve) return getIntermediatePerformanceDefault();
+				return basicGetIntermediatePerformanceDefault();
 			case DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE:
 				return getSdnNodePerformance();
+			case DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE_DEFAULT:
+				if (resolve) return getSdnNodePerformanceDefault();
+				return basicGetSdnNodePerformanceDefault();
 			case DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE:
 				return getNetworkInterface();
+			case DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE_DEFAULT:
+				if (resolve) return getNetworkInterfaceDefault();
+				return basicGetNetworkInterfaceDefault();
 			case DNIAPPackage.ADAPTABLE_NODE__ADAPTATION_GROUP:
 				if (resolve) return getAdaptationGroup();
 				return basicGetAdaptationGroup();
@@ -407,18 +615,30 @@ public class AdaptableNodeImpl extends MinimalEObjectImpl.Container implements A
 				getEndPerformance().clear();
 				getEndPerformance().addAll((Collection<? extends AdaptableEndPerformance>)newValue);
 				return;
+			case DNIAPPackage.ADAPTABLE_NODE__END_PERFORMANCE_DEFAULT:
+				setEndPerformanceDefault((AdaptableEndPerformance)newValue);
+				return;
 			case DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE:
 				getIntermediatePerformance().clear();
 				getIntermediatePerformance().addAll((Collection<? extends AdaptableIntermediatePerformance>)newValue);
 				return;
+			case DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE_DEFAULT:
+				setIntermediatePerformanceDefault((AdaptableIntermediatePerformance)newValue);
+				return;
 			case DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE:
 				getSdnNodePerformance().clear();
 				getSdnNodePerformance().addAll((Collection<? extends AdaptableSdnNodePerformance>)newValue);
 				return;
+			case DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE_DEFAULT:
+				setSdnNodePerformanceDefault((AdaptableSdnNodePerformance)newValue);
+				return;
 			case DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE:
 				getNetworkInterface().clear();
 				getNetworkInterface().addAll((Collection<? extends AdaptableNetworkInterface>)newValue);
 				return;
+			case DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE_DEFAULT:
+				setNetworkInterfaceDefault((AdaptableNetworkInterface)newValue);
+				return;
 			case DNIAPPackage.ADAPTABLE_NODE__ADAPTATION_GROUP:
 				setAdaptationGroup((NodeAdaptationGroup)newValue);
 				return;
@@ -443,15 +663,27 @@ public class AdaptableNodeImpl extends MinimalEObjectImpl.Container implements A
 			case DNIAPPackage.ADAPTABLE_NODE__END_PERFORMANCE:
 				getEndPerformance().clear();
 				return;
+			case DNIAPPackage.ADAPTABLE_NODE__END_PERFORMANCE_DEFAULT:
+				setEndPerformanceDefault((AdaptableEndPerformance)null);
+				return;
 			case DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE:
 				getIntermediatePerformance().clear();
 				return;
+			case DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE_DEFAULT:
+				setIntermediatePerformanceDefault((AdaptableIntermediatePerformance)null);
+				return;
 			case DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE:
 				getSdnNodePerformance().clear();
 				return;
+			case DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE_DEFAULT:
+				setSdnNodePerformanceDefault((AdaptableSdnNodePerformance)null);
+				return;
 			case DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE:
 				getNetworkInterface().clear();
 				return;
+			case DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE_DEFAULT:
+				setNetworkInterfaceDefault((AdaptableNetworkInterface)null);
+				return;
 			case DNIAPPackage.ADAPTABLE_NODE__ADAPTATION_GROUP:
 				setAdaptationGroup((NodeAdaptationGroup)null);
 				return;
@@ -475,12 +707,20 @@ public class AdaptableNodeImpl extends MinimalEObjectImpl.Container implements A
 				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
 			case DNIAPPackage.ADAPTABLE_NODE__END_PERFORMANCE:
 				return endPerformance != null && !endPerformance.isEmpty();
+			case DNIAPPackage.ADAPTABLE_NODE__END_PERFORMANCE_DEFAULT:
+				return endPerformanceDefault != null;
 			case DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE:
 				return intermediatePerformance != null && !intermediatePerformance.isEmpty();
+			case DNIAPPackage.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE_DEFAULT:
+				return intermediatePerformanceDefault != null;
 			case DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE:
 				return sdnNodePerformance != null && !sdnNodePerformance.isEmpty();
+			case DNIAPPackage.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE_DEFAULT:
+				return sdnNodePerformanceDefault != null;
 			case DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE:
 				return networkInterface != null && !networkInterface.isEmpty();
+			case DNIAPPackage.ADAPTABLE_NODE__NETWORK_INTERFACE_DEFAULT:
+				return networkInterfaceDefault != null;
 			case DNIAPPackage.ADAPTABLE_NODE__ADAPTATION_GROUP:
 				return adaptationGroup != null;
 		}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableSdnNodePerformanceImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableSdnNodePerformanceImpl.java
index 6b13d01f..c42b45e1 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableSdnNodePerformanceImpl.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/AdaptableSdnNodePerformanceImpl.java
@@ -39,7 +39,9 @@ import tools.descartes.dni.dnimm3ap.DNIAPPackage;
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceImpl#getEntityType <em>Entity Type</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceImpl#getName <em>Name</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceImpl#getSoftwareSwitchingPerformance <em>Software Switching Performance</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceImpl#getSoftwareSwitchingPerformanceDefault <em>Software Switching Performance Default</em>}</li>
  *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceImpl#getHardwareSwitchingPerformance <em>Hardware Switching Performance</em>}</li>
+ *   <li>{@link tools.descartes.dni.dnimm3ap.impl.AdaptableSdnNodePerformanceImpl#getHardwareSwitchingPerformanceDefault <em>Hardware Switching Performance Default</em>}</li>
  * </ul>
  *
  * @generated
@@ -85,6 +87,16 @@ public class AdaptableSdnNodePerformanceImpl extends MinimalEObjectImpl.Containe
 	 */
 	protected EList<AdaptableIntermediatePerformance> softwareSwitchingPerformance;
 
+	/**
+	 * The cached value of the '{@link #getSoftwareSwitchingPerformanceDefault() <em>Software Switching Performance Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSoftwareSwitchingPerformanceDefault()
+	 * @generated
+	 * @ordered
+	 */
+	protected AdaptableIntermediatePerformance softwareSwitchingPerformanceDefault;
+
 	/**
 	 * The cached value of the '{@link #getHardwareSwitchingPerformance() <em>Hardware Switching Performance</em>}' reference list.
 	 * <!-- begin-user-doc -->
@@ -95,6 +107,16 @@ public class AdaptableSdnNodePerformanceImpl extends MinimalEObjectImpl.Containe
 	 */
 	protected EList<AdaptableIntermediatePerformance> hardwareSwitchingPerformance;
 
+	/**
+	 * The cached value of the '{@link #getHardwareSwitchingPerformanceDefault() <em>Hardware Switching Performance Default</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHardwareSwitchingPerformanceDefault()
+	 * @generated
+	 * @ordered
+	 */
+	protected AdaptableIntermediatePerformance hardwareSwitchingPerformanceDefault;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -192,6 +214,44 @@ public class AdaptableSdnNodePerformanceImpl extends MinimalEObjectImpl.Containe
 		return softwareSwitchingPerformance;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableIntermediatePerformance getSoftwareSwitchingPerformanceDefault() {
+		if (softwareSwitchingPerformanceDefault != null && softwareSwitchingPerformanceDefault.eIsProxy()) {
+			InternalEObject oldSoftwareSwitchingPerformanceDefault = (InternalEObject)softwareSwitchingPerformanceDefault;
+			softwareSwitchingPerformanceDefault = (AdaptableIntermediatePerformance)eResolveProxy(oldSoftwareSwitchingPerformanceDefault);
+			if (softwareSwitchingPerformanceDefault != oldSoftwareSwitchingPerformanceDefault) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE_DEFAULT, oldSoftwareSwitchingPerformanceDefault, softwareSwitchingPerformanceDefault));
+			}
+		}
+		return softwareSwitchingPerformanceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableIntermediatePerformance basicGetSoftwareSwitchingPerformanceDefault() {
+		return softwareSwitchingPerformanceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSoftwareSwitchingPerformanceDefault(AdaptableIntermediatePerformance newSoftwareSwitchingPerformanceDefault) {
+		AdaptableIntermediatePerformance oldSoftwareSwitchingPerformanceDefault = softwareSwitchingPerformanceDefault;
+		softwareSwitchingPerformanceDefault = newSoftwareSwitchingPerformanceDefault;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE_DEFAULT, oldSoftwareSwitchingPerformanceDefault, softwareSwitchingPerformanceDefault));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -204,6 +264,44 @@ public class AdaptableSdnNodePerformanceImpl extends MinimalEObjectImpl.Containe
 		return hardwareSwitchingPerformance;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableIntermediatePerformance getHardwareSwitchingPerformanceDefault() {
+		if (hardwareSwitchingPerformanceDefault != null && hardwareSwitchingPerformanceDefault.eIsProxy()) {
+			InternalEObject oldHardwareSwitchingPerformanceDefault = (InternalEObject)hardwareSwitchingPerformanceDefault;
+			hardwareSwitchingPerformanceDefault = (AdaptableIntermediatePerformance)eResolveProxy(oldHardwareSwitchingPerformanceDefault);
+			if (hardwareSwitchingPerformanceDefault != oldHardwareSwitchingPerformanceDefault) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE_DEFAULT, oldHardwareSwitchingPerformanceDefault, hardwareSwitchingPerformanceDefault));
+			}
+		}
+		return hardwareSwitchingPerformanceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AdaptableIntermediatePerformance basicGetHardwareSwitchingPerformanceDefault() {
+		return hardwareSwitchingPerformanceDefault;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHardwareSwitchingPerformanceDefault(AdaptableIntermediatePerformance newHardwareSwitchingPerformanceDefault) {
+		AdaptableIntermediatePerformance oldHardwareSwitchingPerformanceDefault = hardwareSwitchingPerformanceDefault;
+		hardwareSwitchingPerformanceDefault = newHardwareSwitchingPerformanceDefault;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE_DEFAULT, oldHardwareSwitchingPerformanceDefault, hardwareSwitchingPerformanceDefault));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -235,8 +333,14 @@ public class AdaptableSdnNodePerformanceImpl extends MinimalEObjectImpl.Containe
 				return getName();
 			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE:
 				return getSoftwareSwitchingPerformance();
+			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE_DEFAULT:
+				if (resolve) return getSoftwareSwitchingPerformanceDefault();
+				return basicGetSoftwareSwitchingPerformanceDefault();
 			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE:
 				return getHardwareSwitchingPerformance();
+			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE_DEFAULT:
+				if (resolve) return getHardwareSwitchingPerformanceDefault();
+				return basicGetHardwareSwitchingPerformanceDefault();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -261,10 +365,16 @@ public class AdaptableSdnNodePerformanceImpl extends MinimalEObjectImpl.Containe
 				getSoftwareSwitchingPerformance().clear();
 				getSoftwareSwitchingPerformance().addAll((Collection<? extends AdaptableIntermediatePerformance>)newValue);
 				return;
+			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE_DEFAULT:
+				setSoftwareSwitchingPerformanceDefault((AdaptableIntermediatePerformance)newValue);
+				return;
 			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE:
 				getHardwareSwitchingPerformance().clear();
 				getHardwareSwitchingPerformance().addAll((Collection<? extends AdaptableIntermediatePerformance>)newValue);
 				return;
+			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE_DEFAULT:
+				setHardwareSwitchingPerformanceDefault((AdaptableIntermediatePerformance)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -286,9 +396,15 @@ public class AdaptableSdnNodePerformanceImpl extends MinimalEObjectImpl.Containe
 			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE:
 				getSoftwareSwitchingPerformance().clear();
 				return;
+			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE_DEFAULT:
+				setSoftwareSwitchingPerformanceDefault((AdaptableIntermediatePerformance)null);
+				return;
 			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE:
 				getHardwareSwitchingPerformance().clear();
 				return;
+			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE_DEFAULT:
+				setHardwareSwitchingPerformanceDefault((AdaptableIntermediatePerformance)null);
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -309,8 +425,12 @@ public class AdaptableSdnNodePerformanceImpl extends MinimalEObjectImpl.Containe
 				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
 			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE:
 				return softwareSwitchingPerformance != null && !softwareSwitchingPerformance.isEmpty();
+			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE_DEFAULT:
+				return softwareSwitchingPerformanceDefault != null;
 			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE:
 				return hardwareSwitchingPerformance != null && !hardwareSwitchingPerformance.isEmpty();
+			case DNIAPPackage.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE_DEFAULT:
+				return hardwareSwitchingPerformanceDefault != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java
index bacece10..36ff188e 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/impl/DNIAPPackageImpl.java
@@ -505,7 +505,7 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptableNode_IntermediatePerformance() {
+	public EReference getAdaptableNode_EndPerformanceDefault() {
 		return (EReference)adaptableNodeEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -514,7 +514,7 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptableNode_SdnNodePerformance() {
+	public EReference getAdaptableNode_IntermediatePerformance() {
 		return (EReference)adaptableNodeEClass.getEStructuralFeatures().get(3);
 	}
 
@@ -523,7 +523,7 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptableNode_NetworkInterface() {
+	public EReference getAdaptableNode_IntermediatePerformanceDefault() {
 		return (EReference)adaptableNodeEClass.getEStructuralFeatures().get(4);
 	}
 
@@ -532,10 +532,46 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptableNode_AdaptationGroup() {
+	public EReference getAdaptableNode_SdnNodePerformance() {
 		return (EReference)adaptableNodeEClass.getEStructuralFeatures().get(5);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAdaptableNode_SdnNodePerformanceDefault() {
+		return (EReference)adaptableNodeEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAdaptableNode_NetworkInterface() {
+		return (EReference)adaptableNodeEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAdaptableNode_NetworkInterfaceDefault() {
+		return (EReference)adaptableNodeEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAdaptableNode_AdaptationGroup() {
+		return (EReference)adaptableNodeEClass.getEStructuralFeatures().get(9);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -568,7 +604,7 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptableLink_NetworkInterface() {
+	public EReference getAdaptableLink_LinkPerformanceDefault() {
 		return (EReference)adaptableLinkEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -577,10 +613,28 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptableLink_AdaptationGroup() {
+	public EReference getAdaptableLink_NetworkInterface() {
 		return (EReference)adaptableLinkEClass.getEStructuralFeatures().get(3);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAdaptableLink_NetworkInterfaceDefault() {
+		return (EReference)adaptableLinkEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAdaptableLink_AdaptationGroup() {
+		return (EReference)adaptableLinkEClass.getEStructuralFeatures().get(5);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -721,10 +775,28 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getAdaptableSdnNodePerformance_HardwareSwitchingPerformance() {
+	public EReference getAdaptableSdnNodePerformance_SoftwareSwitchingPerformanceDefault() {
 		return (EReference)adaptableSdnNodePerformanceEClass.getEStructuralFeatures().get(2);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAdaptableSdnNodePerformance_HardwareSwitchingPerformance() {
+		return (EReference)adaptableSdnNodePerformanceEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAdaptableSdnNodePerformance_HardwareSwitchingPerformanceDefault() {
+		return (EReference)adaptableSdnNodePerformanceEClass.getEStructuralFeatures().get(4);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -752,6 +824,15 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 		return (EReference)adaptableNetworkInterfaceEClass.getEStructuralFeatures().get(1);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAdaptableNetworkInterface_NetworkInterfacePerformanceDefault() {
+		return (EReference)adaptableNetworkInterfaceEClass.getEStructuralFeatures().get(2);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1082,15 +1163,21 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 		adaptableNodeEClass = createEClass(ADAPTABLE_NODE);
 		createEAttribute(adaptableNodeEClass, ADAPTABLE_NODE__NAME);
 		createEReference(adaptableNodeEClass, ADAPTABLE_NODE__END_PERFORMANCE);
+		createEReference(adaptableNodeEClass, ADAPTABLE_NODE__END_PERFORMANCE_DEFAULT);
 		createEReference(adaptableNodeEClass, ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE);
+		createEReference(adaptableNodeEClass, ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE_DEFAULT);
 		createEReference(adaptableNodeEClass, ADAPTABLE_NODE__SDN_NODE_PERFORMANCE);
+		createEReference(adaptableNodeEClass, ADAPTABLE_NODE__SDN_NODE_PERFORMANCE_DEFAULT);
 		createEReference(adaptableNodeEClass, ADAPTABLE_NODE__NETWORK_INTERFACE);
+		createEReference(adaptableNodeEClass, ADAPTABLE_NODE__NETWORK_INTERFACE_DEFAULT);
 		createEReference(adaptableNodeEClass, ADAPTABLE_NODE__ADAPTATION_GROUP);
 
 		adaptableLinkEClass = createEClass(ADAPTABLE_LINK);
 		createEAttribute(adaptableLinkEClass, ADAPTABLE_LINK__NAME);
 		createEReference(adaptableLinkEClass, ADAPTABLE_LINK__LINK_PERFORMANCE);
+		createEReference(adaptableLinkEClass, ADAPTABLE_LINK__LINK_PERFORMANCE_DEFAULT);
 		createEReference(adaptableLinkEClass, ADAPTABLE_LINK__NETWORK_INTERFACE);
+		createEReference(adaptableLinkEClass, ADAPTABLE_LINK__NETWORK_INTERFACE_DEFAULT);
 		createEReference(adaptableLinkEClass, ADAPTABLE_LINK__ADAPTATION_GROUP);
 
 		adaptableLinkPerformanceEClass = createEClass(ADAPTABLE_LINK_PERFORMANCE);
@@ -1111,11 +1198,14 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 		adaptableSdnNodePerformanceEClass = createEClass(ADAPTABLE_SDN_NODE_PERFORMANCE);
 		createEAttribute(adaptableSdnNodePerformanceEClass, ADAPTABLE_SDN_NODE_PERFORMANCE__NAME);
 		createEReference(adaptableSdnNodePerformanceEClass, ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE);
+		createEReference(adaptableSdnNodePerformanceEClass, ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE_DEFAULT);
 		createEReference(adaptableSdnNodePerformanceEClass, ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE);
+		createEReference(adaptableSdnNodePerformanceEClass, ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE_DEFAULT);
 
 		adaptableNetworkInterfaceEClass = createEClass(ADAPTABLE_NETWORK_INTERFACE);
 		createEAttribute(adaptableNetworkInterfaceEClass, ADAPTABLE_NETWORK_INTERFACE__NAME);
 		createEReference(adaptableNetworkInterfaceEClass, ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE);
+		createEReference(adaptableNetworkInterfaceEClass, ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE_DEFAULT);
 
 		adaptableNetworkInterfacePerformanceEClass = createEClass(ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE);
 		createEAttribute(adaptableNetworkInterfacePerformanceEClass, ADAPTABLE_NETWORK_INTERFACE_PERFORMANCE__NAME);
@@ -1285,15 +1375,21 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 		initEClass(adaptableNodeEClass, AdaptableNode.class, "AdaptableNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getAdaptableNode_Name(), theEcorePackage.getEString(), "name", null, 0, 1, AdaptableNode.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 		initEReference(getAdaptableNode_EndPerformance(), this.getAdaptableEndPerformance(), null, "endPerformance", null, 0, -1, AdaptableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptableNode_EndPerformanceDefault(), this.getAdaptableEndPerformance(), null, "endPerformanceDefault", null, 0, 1, AdaptableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getAdaptableNode_IntermediatePerformance(), this.getAdaptableIntermediatePerformance(), null, "intermediatePerformance", null, 0, -1, AdaptableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptableNode_IntermediatePerformanceDefault(), this.getAdaptableIntermediatePerformance(), null, "intermediatePerformanceDefault", null, 0, 1, AdaptableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getAdaptableNode_SdnNodePerformance(), this.getAdaptableSdnNodePerformance(), null, "sdnNodePerformance", null, 0, -1, AdaptableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptableNode_SdnNodePerformanceDefault(), this.getAdaptableSdnNodePerformance(), null, "sdnNodePerformanceDefault", null, 0, 1, AdaptableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getAdaptableNode_NetworkInterface(), this.getAdaptableNetworkInterface(), null, "networkInterface", null, 0, -1, AdaptableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptableNode_NetworkInterfaceDefault(), this.getAdaptableNetworkInterface(), null, "networkInterfaceDefault", null, 0, 1, AdaptableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getAdaptableNode_AdaptationGroup(), this.getNodeAdaptationGroup(), this.getNodeAdaptationGroup_Items(), "adaptationGroup", null, 0, 1, AdaptableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(adaptableLinkEClass, AdaptableLink.class, "AdaptableLink", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getAdaptableLink_Name(), theEcorePackage.getEString(), "name", null, 0, 1, AdaptableLink.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 		initEReference(getAdaptableLink_LinkPerformance(), this.getAdaptableLinkPerformance(), null, "linkPerformance", null, 0, -1, AdaptableLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptableLink_LinkPerformanceDefault(), this.getAdaptableLinkPerformance(), null, "linkPerformanceDefault", null, 0, 1, AdaptableLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getAdaptableLink_NetworkInterface(), this.getAdaptableNetworkInterface(), null, "networkInterface", null, 0, -1, AdaptableLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptableLink_NetworkInterfaceDefault(), this.getAdaptableNetworkInterface(), null, "networkInterfaceDefault", null, 0, 1, AdaptableLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getAdaptableLink_AdaptationGroup(), this.getLinkAdaptationGroup(), this.getLinkAdaptationGroup_Items(), "adaptationGroup", null, 0, 1, AdaptableLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(adaptableLinkPerformanceEClass, AdaptableLinkPerformance.class, "AdaptableLinkPerformance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -1314,11 +1410,14 @@ public class DNIAPPackageImpl extends EPackageImpl implements DNIAPPackage {
 		initEClass(adaptableSdnNodePerformanceEClass, AdaptableSdnNodePerformance.class, "AdaptableSdnNodePerformance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getAdaptableSdnNodePerformance_Name(), theEcorePackage.getEString(), "name", null, 0, 1, AdaptableSdnNodePerformance.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 		initEReference(getAdaptableSdnNodePerformance_SoftwareSwitchingPerformance(), this.getAdaptableIntermediatePerformance(), null, "softwareSwitchingPerformance", null, 0, -1, AdaptableSdnNodePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptableSdnNodePerformance_SoftwareSwitchingPerformanceDefault(), this.getAdaptableIntermediatePerformance(), null, "softwareSwitchingPerformanceDefault", null, 0, 1, AdaptableSdnNodePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getAdaptableSdnNodePerformance_HardwareSwitchingPerformance(), this.getAdaptableIntermediatePerformance(), null, "hardwareSwitchingPerformance", null, 0, -1, AdaptableSdnNodePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptableSdnNodePerformance_HardwareSwitchingPerformanceDefault(), this.getAdaptableIntermediatePerformance(), null, "hardwareSwitchingPerformanceDefault", null, 0, 1, AdaptableSdnNodePerformance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(adaptableNetworkInterfaceEClass, AdaptableNetworkInterface.class, "AdaptableNetworkInterface", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getAdaptableNetworkInterface_Name(), theEcorePackage.getEString(), "name", null, 0, 1, AdaptableNetworkInterface.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 		initEReference(getAdaptableNetworkInterface_NetworkInterfacePerformance(), this.getAdaptableNetworkInterfacePerformance(), null, "networkInterfacePerformance", null, 0, -1, AdaptableNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAdaptableNetworkInterface_NetworkInterfacePerformanceDefault(), this.getAdaptableNetworkInterfacePerformance(), null, "networkInterfacePerformanceDefault", null, 0, 1, AdaptableNetworkInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(adaptableNetworkInterfacePerformanceEClass, AdaptableNetworkInterfacePerformance.class, "AdaptableNetworkInterfacePerformance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getAdaptableNetworkInterfacePerformance_Name(), theEcorePackage.getEString(), "name", null, 0, 1, AdaptableNetworkInterfacePerformance.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkItemProvider.java
index 11a6d46b..3446dadb 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkItemProvider.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableLinkItemProvider.java
@@ -66,7 +66,9 @@ public class AdaptableLinkItemProvider
 			addEntityTypePropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
 			addLinkPerformancePropertyDescriptor(object);
+			addLinkPerformanceDefaultPropertyDescriptor(object);
 			addNetworkInterfacePropertyDescriptor(object);
+			addNetworkInterfaceDefaultPropertyDescriptor(object);
 			addAdaptationGroupPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
@@ -138,6 +140,28 @@ public class AdaptableLinkItemProvider
 				 null));
 	}
 
+	/**
+	 * This adds a property descriptor for the Link Performance Default feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addLinkPerformanceDefaultPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AdaptableLink_linkPerformanceDefault_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableLink_linkPerformanceDefault_feature", "_UI_AdaptableLink_type"),
+				 DNIAPPackage.Literals.ADAPTABLE_LINK__LINK_PERFORMANCE_DEFAULT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This adds a property descriptor for the Network Interface feature.
 	 * <!-- begin-user-doc -->
@@ -160,6 +184,28 @@ public class AdaptableLinkItemProvider
 				 null));
 	}
 
+	/**
+	 * This adds a property descriptor for the Network Interface Default feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNetworkInterfaceDefaultPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AdaptableLink_networkInterfaceDefault_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableLink_networkInterfaceDefault_feature", "_UI_AdaptableLink_type"),
+				 DNIAPPackage.Literals.ADAPTABLE_LINK__NETWORK_INTERFACE_DEFAULT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This adds a property descriptor for the Adaptation Group feature.
 	 * <!-- begin-user-doc -->
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfaceItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfaceItemProvider.java
index 704fc47b..019a952b 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfaceItemProvider.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNetworkInterfaceItemProvider.java
@@ -66,6 +66,7 @@ public class AdaptableNetworkInterfaceItemProvider
 			addEntityTypePropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
 			addNetworkInterfacePerformancePropertyDescriptor(object);
+			addNetworkInterfacePerformanceDefaultPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
@@ -136,6 +137,28 @@ public class AdaptableNetworkInterfaceItemProvider
 				 null));
 	}
 
+	/**
+	 * This adds a property descriptor for the Network Interface Performance Default feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNetworkInterfacePerformanceDefaultPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AdaptableNetworkInterface_networkInterfacePerformanceDefault_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableNetworkInterface_networkInterfacePerformanceDefault_feature", "_UI_AdaptableNetworkInterface_type"),
+				 DNIAPPackage.Literals.ADAPTABLE_NETWORK_INTERFACE__NETWORK_INTERFACE_PERFORMANCE_DEFAULT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
 	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNodeItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNodeItemProvider.java
index 9fdf6b88..0c51c873 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNodeItemProvider.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableNodeItemProvider.java
@@ -66,9 +66,13 @@ public class AdaptableNodeItemProvider
 			addEntityTypePropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
 			addEndPerformancePropertyDescriptor(object);
+			addEndPerformanceDefaultPropertyDescriptor(object);
 			addIntermediatePerformancePropertyDescriptor(object);
+			addIntermediatePerformanceDefaultPropertyDescriptor(object);
 			addSdnNodePerformancePropertyDescriptor(object);
+			addSdnNodePerformanceDefaultPropertyDescriptor(object);
 			addNetworkInterfacePropertyDescriptor(object);
+			addNetworkInterfaceDefaultPropertyDescriptor(object);
 			addAdaptationGroupPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
@@ -140,6 +144,28 @@ public class AdaptableNodeItemProvider
 				 null));
 	}
 
+	/**
+	 * This adds a property descriptor for the End Performance Default feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addEndPerformanceDefaultPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AdaptableNode_endPerformanceDefault_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableNode_endPerformanceDefault_feature", "_UI_AdaptableNode_type"),
+				 DNIAPPackage.Literals.ADAPTABLE_NODE__END_PERFORMANCE_DEFAULT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This adds a property descriptor for the Intermediate Performance feature.
 	 * <!-- begin-user-doc -->
@@ -162,6 +188,28 @@ public class AdaptableNodeItemProvider
 				 null));
 	}
 
+	/**
+	 * This adds a property descriptor for the Intermediate Performance Default feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addIntermediatePerformanceDefaultPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AdaptableNode_intermediatePerformanceDefault_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableNode_intermediatePerformanceDefault_feature", "_UI_AdaptableNode_type"),
+				 DNIAPPackage.Literals.ADAPTABLE_NODE__INTERMEDIATE_PERFORMANCE_DEFAULT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This adds a property descriptor for the Sdn Node Performance feature.
 	 * <!-- begin-user-doc -->
@@ -184,6 +232,28 @@ public class AdaptableNodeItemProvider
 				 null));
 	}
 
+	/**
+	 * This adds a property descriptor for the Sdn Node Performance Default feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSdnNodePerformanceDefaultPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AdaptableNode_sdnNodePerformanceDefault_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableNode_sdnNodePerformanceDefault_feature", "_UI_AdaptableNode_type"),
+				 DNIAPPackage.Literals.ADAPTABLE_NODE__SDN_NODE_PERFORMANCE_DEFAULT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This adds a property descriptor for the Network Interface feature.
 	 * <!-- begin-user-doc -->
@@ -206,6 +276,28 @@ public class AdaptableNodeItemProvider
 				 null));
 	}
 
+	/**
+	 * This adds a property descriptor for the Network Interface Default feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNetworkInterfaceDefaultPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AdaptableNode_networkInterfaceDefault_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableNode_networkInterfaceDefault_feature", "_UI_AdaptableNode_type"),
+				 DNIAPPackage.Literals.ADAPTABLE_NODE__NETWORK_INTERFACE_DEFAULT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This adds a property descriptor for the Adaptation Group feature.
 	 * <!-- begin-user-doc -->
diff --git a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableSdnNodePerformanceItemProvider.java b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableSdnNodePerformanceItemProvider.java
index a37210b1..10b98c5a 100644
--- a/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableSdnNodePerformanceItemProvider.java
+++ b/tools.descartes.dni.adaptation/src/tools/descartes/dni/dnimm3ap/provider/AdaptableSdnNodePerformanceItemProvider.java
@@ -66,7 +66,9 @@ public class AdaptableSdnNodePerformanceItemProvider
 			addEntityTypePropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
 			addSoftwareSwitchingPerformancePropertyDescriptor(object);
+			addSoftwareSwitchingPerformanceDefaultPropertyDescriptor(object);
 			addHardwareSwitchingPerformancePropertyDescriptor(object);
+			addHardwareSwitchingPerformanceDefaultPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
@@ -137,6 +139,28 @@ public class AdaptableSdnNodePerformanceItemProvider
 				 null));
 	}
 
+	/**
+	 * This adds a property descriptor for the Software Switching Performance Default feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addSoftwareSwitchingPerformanceDefaultPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AdaptableSdnNodePerformance_softwareSwitchingPerformanceDefault_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableSdnNodePerformance_softwareSwitchingPerformanceDefault_feature", "_UI_AdaptableSdnNodePerformance_type"),
+				 DNIAPPackage.Literals.ADAPTABLE_SDN_NODE_PERFORMANCE__SOFTWARE_SWITCHING_PERFORMANCE_DEFAULT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This adds a property descriptor for the Hardware Switching Performance feature.
 	 * <!-- begin-user-doc -->
@@ -159,6 +183,28 @@ public class AdaptableSdnNodePerformanceItemProvider
 				 null));
 	}
 
+	/**
+	 * This adds a property descriptor for the Hardware Switching Performance Default feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addHardwareSwitchingPerformanceDefaultPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_AdaptableSdnNodePerformance_hardwareSwitchingPerformanceDefault_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_AdaptableSdnNodePerformance_hardwareSwitchingPerformanceDefault_feature", "_UI_AdaptableSdnNodePerformance_type"),
+				 DNIAPPackage.Literals.ADAPTABLE_SDN_NODE_PERFORMANCE__HARDWARE_SWITCHING_PERFORMANCE_DEFAULT,
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
 	/**
 	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
 	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-- 
GitLab