<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.7">
	<classes>
		<class id="LocationType" _delta="define">
			<parent>Typology</parent>
			<properties>
				<category>bizmodel,searchable</category>
				<abstract>false</abstract>
				<key_type>autoincrement</key_type>
				<db_table>locationtype</db_table>
				<db_key_field>id</db_key_field>
				<db_final_class_field/>
				<naming>
					<attributes>
						<attribute id="name"/>
					</attributes>
				</naming>
				<display_template/>
				<icon/>
				<reconciliation>
					<attributes>
						<attribute id="name"/>
					</attributes>
				</reconciliation>
			</properties>
			<fields>
				<field id="locations_list" xsi:type="AttributeLinkedSet">
					<linked_class>Location</linked_class>
					<ext_key_to_me>locationtype_id</ext_key_to_me>
					<edit_mode>add_only</edit_mode>
					<count_min>0</count_min>
					<count_max>0</count_max>
					<duplicates/>
				</field>
			</fields>
			<methods/>
			<presentation>
				<details>
					<items>
						<item id="name">
							<rank>10</rank>
						</item>
						<item id="locations_list">
							<rank>20</rank>
						</item>
					</items>
				</details>
				<search>
					<items>
						<item id="name">
							<rank>10</rank>
						</item>
					</items>
				</search>
				<list>
					<items>
						<item id="name">
							<rank>10</rank>
						</item>
					</items>
				</list>
			</presentation>
		</class>
		<class id="Location" _delta="must_exist">
			<fields>
				<field id="locationtype_id" xsi:type="AttributeExternalKey" _delta="force">
					<sql>locationtype_id</sql>
					<target_class>LocationType</target_class>
					<is_null_allowed>true</is_null_allowed>
					<on_target_delete>DEL_MANUAL</on_target_delete>
				</field>
				<field id="parent_id" xsi:type="AttributeHierarchicalKey" _delta="define_if_not_exists">
					<sql>parent_id</sql>
					<filter><![CDATA[SELECT Location]]></filter>
					<is_null_allowed>true</is_null_allowed>
					<on_target_delete>DEL_AUTO</on_target_delete>
				</field>
				<field id="locations_list" xsi:type="AttributeLinkedSet" _delta="define_if_not_exists">
					<linked_class>Location</linked_class>
					<ext_key_to_me>parent_id</ext_key_to_me>
				</field>
			</fields>
			<presentation>
				<details>
					<items>
						<item id="locationtype_id" _delta="force">
							<rank>25</rank>
						</item>
						<item id="parent_id" _delta="define_if_not_exists">
							<rank>35</rank>
						</item>
						<item id="locations_list" _delta="define_if_not_exists">
							<rank>100</rank>
						</item>
					</items>
				</details>
				<default_search>
					<items>
						<item id="locationtype_id" _delta="force">
							<rank>40</rank>
						</item>
					</items>
				</default_search>
				<list>
					<items>
						<item id="locationtype_id" _delta="force">
							<rank>15</rank>
						</item>
						<item id="parent_id" _delta="define_if_not_exists">
							<rank>25</rank>
						</item>
					</items>
				</list>
			</presentation>
		</class>
		<class id="Rack" _delta="must_exist">
			<fields>
				<field id="nb_u" xsi:type="AttributeMHFRackUnit" _delta="redefine">
					<sql>nb_u</sql>
					<default_value/>
					<is_null_allowed>true</is_null_allowed>
				</field>
			</fields>
		</class>
		<class id="Enclosure" _delta="must_exist">
			<fields>
				<field id="nb_u" xsi:type="AttributeMHFRackUnit" _delta="redefine">
					<sql>nb_u</sql>
					<default_value/>
					<is_null_allowed>true</is_null_allowed>
				</field>
				<field id="position_v" xsi:type="AttributeMHFRackUnit" _delta="define">
					<sql>position_v</sql>
					<default_value/>
					<is_null_allowed>true</is_null_allowed>
				</field>
			</fields>
			<methods>
				<method id="GetEndPositionV" _delta="define">
					<comment><![CDATA[/**
	 * Returns object ending U (eg. A 4U object positioned at 10U will return 13)
	 *
	 * @return int
	 */]]></comment>
					<static>false</static>
					<access>public</access>
					<type>Overload-DBObject</type>
					<code><![CDATA[	public function GetEndPositionV()
	{
		$iHeight = ((int) $this->Get('nb_u') > 0) ? $this->Get('nb_u') : 1;
		$iPositionV = (int) $this->Get('position_v');

		return $iPositionV + $iHeight - 1;
	}]]></code>
				</method>
				<method id="IsMounted" _delta="define">
					<comment><![CDATA[/**
	 * Returns true if object is mounted in its host (position_v > 0)
	 *
	 * @return bool
	 */]]></comment>
					<static>false</static>
					<access>public</access>
					<type>Overload-DBObject</type>
					<code><![CDATA[	public function IsMounted()
	{
		$iPositionV = (int) $this->Get('position_v');

		return $iPositionV > 0;
	}]]></code>
				</method>
			</methods>
			<presentation>
				<details _delta="redefine">
					<items>
						<item id="col:col0">
							<items>
								<item id="fieldset:Enclosure:baseinfo">
									<items>
										<item id="name">
											<rank>10</rank>
										</item>
										<item id="org_id">
											<rank>20</rank>
										</item>
										<item id="status">
											<rank>30</rank>
										</item>
										<item id="business_criticity">
											<rank>40</rank>
										</item>
										<item id="location_id">
											<rank>50</rank>
										</item>
										<item id="rack_id">
											<rank>60</rank>
										</item>
										<item id="position_v">
											<rank>65</rank>
										</item>
									</items>
									<rank>10</rank>
								</item>
								<item id="fieldset:Enclosure:moreinfo">
									<items>
										<item id="brand_id">
											<rank>10</rank>
										</item>
										<item id="model_id">
											<rank>20</rank>
										</item>
										<item id="nb_u">
											<rank>30</rank>
										</item>
										<item id="serialnumber">
											<rank>40</rank>
										</item>
										<item id="asset_number">
											<rank>50</rank>
										</item>
									</items>
									<rank>20</rank>
								</item>
							</items>
							<rank>10</rank>
						</item>
						<item id="col:col1">
							<items>
								<item id="fieldset:Enclosure:dates">
									<items>
										<item id="move2production">
											<rank>10</rank>
										</item>
										<item id="purchase_date">
											<rank>20</rank>
										</item>
										<item id="end_of_warranty">
											<rank>30</rank>
										</item>
									</items>
									<rank>10</rank>
								</item>
								<item id="fieldset:Enclosure:otherinfo">
									<items>
										<item id="description">
											<rank>10</rank>
										</item>
									</items>
									<rank>20</rank>
								</item>
							</items>
							<rank>20</rank>
						</item>
						<item id="contacts_list">
							<rank>150</rank>
						</item>
						<item id="documents_list">
							<rank>160</rank>
						</item>
						<item id="device_list">
							<rank>190</rank>
						</item>
						<item id="providercontracts_list">
							<rank>200</rank>
						</item>
						<item id="services_list">
							<rank>210</rank>
						</item>
					</items>
				</details>
				<list>
					<items>
						<item id="position_v" _delta="define">
							<rank>155</rank>
						</item>
						<item id="nb_u" _delta="define">
							<rank>160</rank>
						</item>
					</items>
				</list>
			</presentation>
		</class>
		<class id="DatacenterDevice" _delta="must_exist">
			<fields>
				<field id="nb_u" xsi:type="AttributeMHFRackUnit" _delta="redefine">
					<sql>nb_u</sql>
					<default_value/>
					<is_null_allowed>true</is_null_allowed>
				</field>
				<field id="position_v" xsi:type="AttributeMHFRackUnit" _delta="define">
					<sql>position_v</sql>
					<default_value/>
					<is_null_allowed>true</is_null_allowed>
				</field>
			</fields>
			<methods>
				<method id="GetEndPositionV" _delta="define">
					<comment><![CDATA[/**
	 * Returns object ending U (eg. A 4U object positioned at 10U will return 13)
	 *
	 * @return int
	 */]]></comment>
					<static>false</static>
					<access>public</access>
					<type>Overload-DBObject</type>
					<code><![CDATA[	public function GetEndPositionV()
	{
		$iHeight = ((int) $this->Get('nb_u') > 0) ? $this->Get('nb_u') : 1;
		$iPositionV = (int) $this->Get('position_v');

		return $iPositionV + $iHeight - 1;
	}]]></code>
				</method>
				<method id="IsMounted" _delta="define">
					<comment><![CDATA[/**
	 * Returns true if object is mounted in its host (position_v > 0)
	 *
	 * @return bool
	 */]]></comment>
					<static>false</static>
					<access>public</access>
					<type>Overload-DBObject</type>
					<code><![CDATA[	public function IsMounted()
	{
		$iPositionV = (int) $this->Get('position_v');

		return $iPositionV > 0;
	}]]></code>
				</method>
			</methods>
			<presentation>
				<details>
					<items>
						<item id="position_v" _delta="define">
							<rank>75</rank>
						</item>
					</items>
				</details>
				<list>
					<items>
						<item id="position_v" _delta="define">
							<rank>155</rank>
						</item>
						<item id="nb_u" _delta="define">
							<rank>160</rank>
						</item>
					</items>
				</list>
			</presentation>
		</class>
		<class id="NAS" _delta="must_exist">
			<presentation>
				<details>
					<items>
						<item id="col:col1">
							<items>
								<item id="fieldset:Server:baseinfo">
									<items>
										<item id="position_v" _delta="define">
											<rank>72</rank>
										</item>
										<item id="nb_u" _delta="define">
											<rank>73</rank>
										</item>
									</items>
								</item>
								<item id="fieldset:Server:moreinfo">
									<items>
										<item id="nb_u" _delta="delete" />
									</items>
								</item>
							</items>
						</item>
					</items>
				</details>
				<list>
					<items>
						<item id="position_v" _delta="define">
							<rank>155</rank>
						</item>
						<item id="nb_u" _delta="define">
							<rank>160</rank>
						</item>
					</items>
				</list>
			</presentation>
		</class>
		<class id="NetworkDevice" _delta="must_exist">
			<presentation>
				<details>
					<items>
						<item id="col:col1">
							<items>
								<item id="fieldset:Server:baseinfo">
									<items>
										<item id="position_v" _delta="define">
											<rank>72</rank>
										</item>
										<item id="nb_u" _delta="define">
											<rank>73</rank>
										</item>
									</items>
								</item>
								<item id="fieldset:Server:moreinfo">
									<items>
										<item id="nb_u" _delta="delete" />
									</items>
								</item>
							</items>
						</item>
					</items>
				</details>
				<list>
					<items>
						<item id="position_v" _delta="define">
							<rank>155</rank>
						</item>
						<item id="nb_u" _delta="define">
							<rank>160</rank>
						</item>
					</items>
				</list>
			</presentation>
		</class>
		<class id="SANSwitch" _delta="must_exist">
			<presentation>
				<details>
					<items>
						<item id="col:col1">
							<items>
								<item id="fieldset:Server:baseinfo">
									<items>
										<item id="position_v" _delta="define">
											<rank>72</rank>
										</item>
										<item id="nb_u" _delta="define">
											<rank>73</rank>
										</item>
									</items>
								</item>
								<item id="fieldset:Server:moreinfo">
									<items>
										<item id="nb_u" _delta="delete" />
									</items>
								</item>
							</items>
						</item>
					</items>
				</details>
				<list>
					<items>
						<item id="position_v" _delta="define">
							<rank>155</rank>
						</item>
						<item id="nb_u" _delta="define">
							<rank>160</rank>
						</item>
					</items>
				</list>
			</presentation>
		</class>
		<class id="Server" _delta="must_exist">
			<presentation>
				<details>
					<items>
						<item id="col:col1">
							<items>
								<item id="fieldset:Server:baseinfo">
									<items>
										<item id="position_v" _delta="define">
											<rank>72</rank>
										</item>
										<item id="nb_u" _delta="define">
											<rank>73</rank>
										</item>
									</items>
								</item>
								<item id="fieldset:Server:moreinfo">
									<items>
										<item id="nb_u" _delta="delete" />
									</items>
								</item>
							</items>
						</item>
					</items>
				</details>
				<list>
					<items>
						<item id="position_v" _delta="define">
							<rank>155</rank>
						</item>
						<item id="nb_u" _delta="define">
							<rank>160</rank>
						</item>
					</items>
				</list>
			</presentation>
		</class>
		<class id="StorageSystem" _delta="must_exist">
			<presentation>
				<details>
					<items>
						<item id="col:col1">
							<items>
								<item id="fieldset:Server:baseinfo">
									<items>
										<item id="position_v" _delta="define">
											<rank>72</rank>
										</item>
										<item id="nb_u" _delta="define">
											<rank>73</rank>
										</item>
									</items>
								</item>
								<item id="fieldset:Server:moreinfo">
									<items>
										<item id="nb_u" _delta="delete" />
									</items>
								</item>
							</items>
						</item>
					</items>
				</details>
				<list>
					<items>
						<item id="position_v" _delta="define">
							<rank>155</rank>
						</item>
						<item id="nb_u" _delta="define">
							<rank>160</rank>
						</item>
					</items>
				</list>
			</presentation>
		</class>
		<class id="TapeLibrary" _delta="must_exist">
			<presentation>
				<details>
					<items>
						<item id="col:col1">
							<items>
								<item id="fieldset:Server:baseinfo">
									<items>
										<item id="position_v" _delta="define">
											<rank>72</rank>
										</item>
										<item id="nb_u" _delta="define">
											<rank>73</rank>
										</item>
									</items>
								</item>
								<item id="fieldset:Server:moreinfo">
									<items>
										<item id="nb_u" _delta="delete" />
									</items>
								</item>
							</items>
						</item>
					</items>
				</details>
				<list>
					<items>
						<item id="position_v" _delta="define">
							<rank>155</rank>
						</item>
						<item id="nb_u" _delta="define">
							<rank>160</rank>
						</item>
					</items>
				</list>
			</presentation>
		</class>
		<class id="PDU" _delta="must_exist">
			<fields>
				<field id="enclosure_id" xsi:type="AttributeExternalKey" _delta="define">
					<filter><![CDATA[SELECT Enclosure WHERE rack_id = :this->rack_id]]></filter>
					<dependencies>
						<attribute id="rack_id"/>
					</dependencies>
					<sql>enclosure_id</sql>
					<target_class>Enclosure</target_class>
					<is_null_allowed>true</is_null_allowed>
					<on_target_delete>DEL_MANUAL</on_target_delete>
					<allow_target_creation>false</allow_target_creation>
				</field>
				<field id="position_v" xsi:type="AttributeMHFRackUnit" _delta="define">
					<sql>position_v</sql>
					<default_value/>
					<is_null_allowed>true</is_null_allowed>
				</field>
				<field id="nb_u" xsi:type="AttributeMHFRackUnit" _delta="define">
					<sql>nb_u</sql>
					<default_value/>
					<is_null_allowed>true</is_null_allowed>
				</field>
			</fields>
			<methods>
				<method id="GetEndPositionV" _delta="define">
					<comment><![CDATA[/**
	 * Returns object ending U (eg. A 4U object positioned at 10U will return 13)
	 *
	 * @return int
	 */]]></comment>
					<static>false</static>
					<access>public</access>
					<type>Overload-DBObject</type>
					<code><![CDATA[	public function GetEndPositionV()
	{
		$iHeight = ((int) $this->Get('nb_u') > 0) ? $this->Get('nb_u') : 1;
		$iPositionV = (int) $this->Get('position_v');

		return $iPositionV + $iHeight - 1;
	}]]></code>
				</method>
				<method id="IsMounted" _delta="define">
					<comment><![CDATA[/**
	 * Returns true if object is mounted in its host (position_v > 0)
	 *
	 * @return bool
	 */]]></comment>
					<static>false</static>
					<access>public</access>
					<type>Overload-DBObject</type>
					<code><![CDATA[	public function IsMounted()
	{
		$iPositionV = (int) $this->Get('position_v');

		return $iPositionV > 0;
	}]]></code>
				</method>
			</methods>
			<presentation>
				<details>
					<items>
						<item id="enclosure_id" _delta="define">
							<rank>62</rank>
						</item>
						<item id="position_v" _delta="define">
							<rank>65</rank>
						</item>
						<item id="nb_u" _delta="define">
							<rank>68</rank>
						</item>
					</items>
				</details>
			</presentation>
		</class>
	</classes>
	<user_rights>
		<groups>
			<group id="General" _delta="must_exist">
				<classes>
					<class id="LocationType" _delta="force"/>
				</classes>
			</group>
		</groups>
	</user_rights>
	<menus>
		<menu id="Typology">
			<definition>
				<cells>
					<cell id="0">
						<dashlets>
							<dashlet id="LocationType" xsi:type="DashletBadge" _delta="force">
								<rank>10</rank>
								<class>LocationType</class>
							</dashlet>
						</dashlets>
					</cell>
				</cells>
			</definition>
		</menu>
	</menus>
</itop_design>
