В результате выполнения объектно-ориентированного анализа были выделены следующие классы, представляющие собой сущности системы. На рисунке 2.13 представлена диаграмма основных сущностей системы.
Рисунок 2.13 - Диаграмма классов основных сущностей системы
Класс Category предназначенный для хранения абстрактной сущности представляющей категорию. Данный класс содержит ссылку такого же типа, как и сам класс и является ссылкой на родителя, таким образом, достигается древовидная структура, с помощью которой можно описать бизнес структуру предприятия. Также класс содержит данные о названии, описании сущности и ссылку на коллекцию атрибутов, которые более подробно описывают экземпляр класса, ссылку на коллекцию наблюдательных пунктов. Листинг класса представлен в листинге 2.1.
id - код категории
name - название категории
topCategory - ссылка на родительскую категорию
subCategories - ссылка на коллекцию подчиненных категорий
listAttributes - ссылка на коллекцию атрибутов
checkpost - ссылка на наблюдательный пункт
description - описание категории
listEmployee - ссылка на список сотрудников
Листинг 2.1- Листинг класса сущности «Категория»
@Entity
@Table(name = "CATEGORIES")
@NamedQueries({
@NamedQuery(name = "Category.getAll", query = "select c from Category c")
})
publicclass
Category implements
Serializable {
privatestatic
final
long
serialVersionUID = 1L;
@Id
@GeneratedValue
privateLong id;
privateString description;
privateString name;
@ManyToOne(fetch = FetchType.EAGER)
privateCategory topCategory;
@OneToMany(fetch = FetchType.LAZY)
privateList<Category> subCategories;
@OneToMany(fetch = FetchType.EAGER)
privateList<Attribute> listAttributes;
@OneToMany(fetch = FetchType.EAGER)
privateList<Checkpost> listCheckposts;
@OneToMany(fetch = FetchType.LAZY)
privateList<Employee> listEmployee;
…
}
Класс Attribute используется для хранения атрибутов описывающих категории и пункты наблюдения. Содержит поля названия атрибута, значения атрибута и ссылку на объект представляющий данные о типе атрибута, данная ссылка необходима для правильной интерпретации значения атрибута. Текст класса представлен в листинге 2.2.
id - код атрибута
name - название атрибута
value - значение атрибута
type - ссылка на тип атрибута
category - ссылка на категорию
checkpost - ссылка на наблюдательный пункт
Листинг 2.2 - Листинг класса сущности «Атрибут»
@Entity
@Table(name = "ATTRIBUTES")
@NamedQueries({
@NamedQuery(name = "Attribute.getByCategoryId", query = "select a from Attribute a where a.category.id = :id"),
@NamedQuery(name = "Attribute.getByCheckpostId", query = "select a from Attribute a where a.checkpost.id = :id")
})
publicclass
Attribute implements
Serializable {
privatestatic
final
long
serialVersionUID = 1L;
@Id
@GeneratedValue
privateLong id;
privateString name;
privateString value;
@ManyToOne(fetch = FetchType.EAGER)
privateAttrType type;
@ManyToOne(fetch = FetchType.LAZY)
privateCategory category;
@ManyToOne(fetch = FetchType.LAZY)
privateCheckpost checkpost;
…
}
Класс AttrType используется для хранения информации о типе атрибута. Содержит поля названия типа и сам тип атрибута. Данная информация необходима для правильной интерпретации значения атрибута. Текст класса приведен в листинге 2.3.
id - код типа
title - название типа
dataType - тип данных
listAttributes - ссылка на коллекцию атрибутов
Листинг 2.3 - Листинг класса сущности «Тип атрибута»
@Entity
@Table(name = "ATTR_TYPES")
@NamedQueries({
@NamedQuery(name = "AttrType.getByTitle", query = "select at from AttrType at where at.title = :title")
})
publicclass
AttrType implements
Serializable {
privatestatic
final
long
serialVersionUID = 1L;
@Id
@GeneratedValue
privateLong id;
privateString title;
privateString dataType;
@OneToMany(fetch = FetchType.LAZY)
privateList<Attribute> listAttributes;
…
}
Класс Checkpost используется для хранения информации о наблюдательных пунктах. Класс содержит поля IP адреса, описания, ссылку на категорию, ссылку на коллекцию атрибутов, описывающих более подробно наблюдательный пункт и ссылку на коллекцию SDP атрибутов, которые представляют настройки кодека для захвата и ретрансляции RTP потока. Текст класса представлен в листинге 2.4.
Анализ эксплуатационной надежности и моделирование работы указателя тахометра ИТЭ-1Т в среде LabVIEW 8.5
Основными целями и
задачами выполняемой курсовой работы являются:
- систематизация, закрепление и расширение теоретических знаний по
технической ...
Источник питания охранного устройства
В настоящее время существует множество систем, предназначенных для
осуществления охраны и безопасности объектов. С развитием науки и техники
у ...
Проектирование и программная реализация комплексной системы стрелочных переводов
Цифровая обработка сигналов (ЦОС) [1] представляет собой одну из наиболее
мощных технологий, которая в XXI веке будет определять развитие наук ...