feature(model): add models
This commit is contained in:
28
.project
Normal file
28
.project
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>labProg5</name>
|
||||||
|
<comment>Project labProg5 created by Buildship.</comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
||||||
|
</natures>
|
||||||
|
<filteredResources>
|
||||||
|
<filter>
|
||||||
|
<id>1771499677127</id>
|
||||||
|
<name></name>
|
||||||
|
<type>30</type>
|
||||||
|
<matcher>
|
||||||
|
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
||||||
|
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
||||||
|
</matcher>
|
||||||
|
</filter>
|
||||||
|
</filteredResources>
|
||||||
|
</projectDescription>
|
||||||
13
.settings/org.eclipse.buildship.core.prefs
Normal file
13
.settings/org.eclipse.buildship.core.prefs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
arguments=--init-script /home/foxen/.cache/nvim/jdtls/labProg5/config/org.eclipse.osgi/58/0/.cp/gradle/init/init.gradle
|
||||||
|
auto.sync=false
|
||||||
|
build.scans.enabled=false
|
||||||
|
connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
|
||||||
|
connection.project.dir=
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
gradle.user.home=
|
||||||
|
java.home=/usr/lib/jvm/java-25-openjdk
|
||||||
|
jvm.arguments=
|
||||||
|
offline.mode=false
|
||||||
|
override.workspace.settings=true
|
||||||
|
show.console.view=true
|
||||||
|
show.executions.view=true
|
||||||
38
app/.classpath
Normal file
38
app/.classpath
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" output="bin/main" path="src/main/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_scope" value="main"/>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" output="bin/main" path="src/main/kotlin">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_scope" value="main"/>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" output="bin/main" path="src/main/resources">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_scope" value="main"/>
|
||||||
|
<attribute name="gradle_used_by_scope" value="main,test"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" output="bin/test" path="src/test/kotlin">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_scope" value="test"/>
|
||||||
|
<attribute name="gradle_used_by_scope" value="test"/>
|
||||||
|
<attribute name="test" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" output="bin/test" path="src/test/resources">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="gradle_scope" value="test"/>
|
||||||
|
<attribute name="gradle_used_by_scope" value="test"/>
|
||||||
|
<attribute name="test" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-21/"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
|
||||||
|
<classpathentry kind="output" path="bin/default"/>
|
||||||
|
</classpath>
|
||||||
34
app/.project
Normal file
34
app/.project
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>app</name>
|
||||||
|
<comment>Project app created by Buildship.</comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
||||||
|
</natures>
|
||||||
|
<filteredResources>
|
||||||
|
<filter>
|
||||||
|
<id>1771499677125</id>
|
||||||
|
<name></name>
|
||||||
|
<type>30</type>
|
||||||
|
<matcher>
|
||||||
|
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
||||||
|
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
||||||
|
</matcher>
|
||||||
|
</filter>
|
||||||
|
</filteredResources>
|
||||||
|
</projectDescription>
|
||||||
2
app/.settings/org.eclipse.buildship.core.prefs
Normal file
2
app/.settings/org.eclipse.buildship.core.prefs
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
connection.project.dir=..
|
||||||
|
eclipse.preferences.version=1
|
||||||
4
app/.settings/org.eclipse.jdt.core.prefs
Normal file
4
app/.settings/org.eclipse.jdt.core.prefs
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=21
|
||||||
|
org.eclipse.jdt.core.compiler.compliance=21
|
||||||
|
org.eclipse.jdt.core.compiler.source=21
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package lab5
|
|
||||||
|
|
||||||
fun main(args: Array<String>) {
|
|
||||||
println("Hello World!")
|
|
||||||
}
|
|
||||||
10
app/src/main/kotlin/lab5/model/Coordinates.kt
Normal file
10
app/src/main/kotlin/lab5/model/Coordinates.kt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
package lab5.model
|
||||||
|
|
||||||
|
data class Coordinates(
|
||||||
|
val x: Long, // не может быть null
|
||||||
|
val y: Float, // максимальное значение 519, не может быть null
|
||||||
|
) {
|
||||||
|
init {
|
||||||
|
require(y <= 519) { "y должен быть меньше 519" }
|
||||||
|
}
|
||||||
|
}
|
||||||
15
app/src/main/kotlin/lab5/model/Organization.kt
Normal file
15
app/src/main/kotlin/lab5/model/Organization.kt
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package lab5.model
|
||||||
|
|
||||||
|
data class Organization(
|
||||||
|
val id: Long,
|
||||||
|
val name: String,
|
||||||
|
val fullName: String,
|
||||||
|
val employeesCount: Long,
|
||||||
|
) {
|
||||||
|
init {
|
||||||
|
require(id > 0) { "id должен быть уникальным" }
|
||||||
|
require(name.isNotBlank()) { "name не может быть пустым" }
|
||||||
|
require(fullName.length() <= 532 && fullName.isNotBlank()) { "fullName не должна быть больше 532 и строка не может быть пустой" }
|
||||||
|
require(employeesCount > 0) { "employeesCount должно быть больше 0" }
|
||||||
|
}
|
||||||
|
}
|
||||||
15
app/src/main/kotlin/lab5/model/Product.kt
Normal file
15
app/src/main/kotlin/lab5/model/Product.kt
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package lab5.model
|
||||||
|
|
||||||
|
import java.time.ZonedDateTime
|
||||||
|
|
||||||
|
data class Product(
|
||||||
|
val id: Long,
|
||||||
|
val name: String,
|
||||||
|
val coordinates: Coordinates,
|
||||||
|
val creationDate: java.time.ZonedDateTime,
|
||||||
|
val price: Long,
|
||||||
|
val unitOfMeasure: UnitOfMeasure?, // Поле может быть null
|
||||||
|
val manufacturer: Organization,
|
||||||
|
) : Comparable<Product> {
|
||||||
|
override fun compareTo(other: Product): Int = this.price.compareTo(other.price)
|
||||||
|
}
|
||||||
8
app/src/main/kotlin/lab5/model/UnitOfMeasure.kt
Normal file
8
app/src/main/kotlin/lab5/model/UnitOfMeasure.kt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
package lab5.model
|
||||||
|
|
||||||
|
enum class UnitOfMeasure {
|
||||||
|
KILOGRAMS,
|
||||||
|
SQUARE_METERS,
|
||||||
|
LITERS,
|
||||||
|
MILLILITERS,
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user