Разделы сайта

Разработка классов сущностей системы

В результате выполнения объектно-ориентированного анализа были выделены следующие классы, представляющие собой сущности системы. На рисунке 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 2 3

Интересное из раздела

Расчет спектральных характеристик сигналов и каналов связи
На современном этапе развития перед железнодорожным транспортом стоят задачи по увеличению пропускной и провозной способности, грузовых и пассажирских перев ...

Программируемый формирователь последовательности импульсов с цифровой индикацией количества импульсов
Проектируемое устройство в готовом виде представляет собой отдельный прибор, основной функцией которого является формирование последовательности импульсов заданной частот ...

Шагающий аппарат
Одной из важных разновидностей роботов являются шагающие роботы, предназначенные для перемещения по труднопроходимой местности. В отличие от к ...