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