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

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

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

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

Анализ эксплуатационной надежности и моделирование работы указателя тахометра ИТЭ-1Т в среде LabVIEW 8.5
Основными целями и задачами выполняемой курсовой работы являются: - систематизация, закрепление и расширение теоретических знаний по технической ...

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

Проектирование и программная реализация комплексной системы стрелочных переводов
Цифровая обработка сигналов (ЦОС) [1] представляет собой одну из наиболее мощных технологий, которая в XXI веке будет определять развитие наук ...