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

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

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

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

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

Шлюз ZigBee и GPRS
Беспроводные сенсорные сети получили большое развитие в последнее время. Такие сети, состоящие из множества миниатюрных узлов, оснащенных маломощным приемо- ...

Проект макета на основе PIC контроллера
Сегодняшний день развития вычислительной техники характеризуется бурным развитием сетевых технологий. При этом, основной упор делается на технологии, позволяющи ...