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

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

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

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

Проект трассы волоконно-оптической линии связи между г. Елец и г. Липецк
В настоящее время развития цифровых технологий и построения сетей NGN, где основу предоставления услуг определяют сети широкополосного доступа, объемы перед ...

Утечка речевой информации по волоконно-оптическим линиям
На смену медным проводам постепенно приходят волоконно-оптические линии связи. Они обеспечивают большую пропускную способность, они долговечнее. Однако, ...

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