<?xml version="1.0" encoding="UTF-8"?>
<DesignPattern xmlns="http://www.alshayeb.com/DPDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.alshayeb.com/DPDL/DPDLSchema.xsd" PatternName="Adapter" Motivation="For new language" AuthorName="Salman">
	<StructuralAttributes>
		<Classes>
			<SubGroup groupID="ClientClasses" noOfClasses="1">
				<Class className="Client" isAbstract="No" classModifier="public" hasConstructor="Yes" isDerived="No" isParent="Yes"/>
			</SubGroup>
			<SubGroup groupID="TargetClasses" noOfClasses="1">
				<Class className="Target" isAbstract="Yes" classModifier="public" hasConstructor="Yes" isDerived="No" isParent="Yes"/>
			</SubGroup>
			<SubGroup groupID="AdapteeClasses" noOfClasses="1">
				<Class className="Adaptee" isAbstract="No" classModifier="public" hasConstructor="Yes" isDerived="No" isParent="No"/>
			</SubGroup>
			<SubGroup groupID="AdapterClasses" noOfClasses="1">
				<Class className="Adapter" isAbstract="No" hasConstructor="Yes" isDerived="Yes" parentId="Target"/>
			</SubGroup>
		</Classes>
		<Operations>
			<SubGroupOp groupID="TargetRequest">
				<Function functionName="Request" containingClassId="Target" isAbstract="No" functionModifier="public" returnType="null"/>
			</SubGroupOp>
			<SubGroupOp groupID="AdapterRequest">
				<Function functionName="Request" containingClassId="Adapter" isAbstract="No" functionModifier="public" returnType="null" isOverRide="No"/>
			</SubGroupOp>
			<SubGroupOp groupID="AdapteeRequest">
				<Function functionName="SpecificRequest" containingClassId="Adaptee" isAbstract="No" functionModifier="public" returnType="null" isOverRide="No"/>
			</SubGroupOp>
		</Operations>
		<Objects>
			<SubgroupOb groupID="AdapteeObject">
				<Object objectName="_adaptee" containingClass="Adapter" objectClass="Adaptee"/>
			</SubgroupOb>
			<SubgroupOb groupID="clientObject">
				<Object objectName="target" containingClass="Client" objectClass="Target" objectModifier="public"/>
			</SubgroupOb>
		</Objects>
		<RelationShips>
			<SubgroupR groupID="TargetRelation">
				<Relation relationName="Association" initiatingClass="Adapter" endClass="Adaptee"/>
			</SubgroupR>
			<SubgroupR groupID="AdapterRelation">
				<Relation relationName="Generalization" initiatingClass="Adapter" endClass="Target"/>
			</SubgroupR>
			<SubgroupR groupID="ClientRelation">
				<Relation relationName="Association" initiatingClass="Client" endClass="Target"/>
			</SubgroupR>
		</RelationShips>
	</StructuralAttributes>
	<BehavioralAttributes>
		<create callingClass="MainApp" returns="Adapter" Collection="No" ObjectId="target" objectClass="Target" createType="new"/>
		<call callingClass="MainApp" returns="null" variableType="{null}" variables="{null}" calledClass="Adapter" CallFrom="constructor" calledThrough="target" Calledfunction="Request">
			<call callingClass="Adapter" returns="null" variableType="{null}" variables="{null}" calledClass="Adaptee" CallFrom="Request" Calledfunction="SpecificRequest" calledThrough="adaptee">
			</call>
		</call>
	</BehavioralAttributes>
</DesignPattern>
