Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EA-3236 information model #1

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<modules>
<module>record-api-definitions</module>
<module>record-api-impl</module>
</modules>

<parent>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package eu.europeana.api.record.datatypes;

public interface CustomDataTypeLiteral extends DataTypeLiteral<String> {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package eu.europeana.api.record.datatypes;

public interface DataTypeLiteral<T> extends Literal<T> {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package eu.europeana.api.record.datatypes;

public interface LanguageTaggedLiteral<T> extends Literal<T> {

T getValue();
String getLang();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package eu.europeana.api.record.datatypes;

public interface Literal<T> {

T getValue();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package eu.europeana.api.record.datatypes;

public interface NonLanguageTaggedLiteral<T> extends Literal<T> {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package eu.europeana.api.record.datatypes;

public interface ObjectReference {

String getId();
Object getReferencedObject();

}
27 changes: 27 additions & 0 deletions record-api-impl/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>record-api</artifactId>
<groupId>eu.europeana.api</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>record-api-impl</artifactId>

<properties>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>

<dependencies>
<dependency>
<groupId>eu.europeana.api</groupId>
<artifactId>record-api-definitions</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package eu.europeana.api.record.impl;

import eu.europeana.api.record.vocabulary.EntityTypes;

public class Agent extends Entity {

private String type = EntityTypes.Agent.getEntityType();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package eu.europeana.api.record.impl;

import eu.europeana.api.record.datatypes.Literal;
import eu.europeana.api.record.datatypes.ObjectReference;

import java.util.List;

// TODO make inteface
public class Aggregation extends EdmEntity {

private Literal<String> type;
private Literal<String> isShownBy;
private List<ObjectReference> hasViews; // multiple object refre

public Literal<String> getType() {
return type;
}

public void setType(Literal<String> type) {
this.type = type;
}

public Literal<String> getIsShownBy() {
return isShownBy;
}

public void setIsShownBy(Literal<String> isShownBy) {
this.isShownBy = isShownBy;
}

public List<ObjectReference> getHasViews() {
return hasViews;
}

public void setHasViews(List<ObjectReference> hasViews) {
this.hasViews = hasViews;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package eu.europeana.api.record.impl;

public class EdmEntity {

private String about;

public String getAbout() {
return about;
}

public void setAbout(String about) {
this.about = about;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package eu.europeana.api.record.impl;

import eu.europeana.api.record.datatypes.Literal;

import java.util.Map;

public abstract class Entity {

// ID of entity
protected String about;
protected Map<Literal<String>, Literal<String>> prefLabel;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package eu.europeana.api.record.impl;

import eu.europeana.api.record.datatypes.Literal;

public class EuropeanaAggregation extends EdmEntity {

private Literal<String> type;

public Literal<String> getType() {
return type;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package eu.europeana.api.record.impl;

public class ProvidedCHO extends EdmEntity {

private String type;

public String getType() {
return type;
}

public void setType(String type) {
this.type = type;
}

@Override
public String getAbout() {
return super.getAbout();
}

@Override
public void setAbout(String about) {
super.setAbout(about);
}
}
105 changes: 105 additions & 0 deletions record-api-impl/src/main/java/eu/europeana/api/record/impl/Proxy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
package eu.europeana.api.record.impl;

import eu.europeana.api.record.datatypes.Literal;

import java.util.List;
import java.util.Map;

public class Proxy extends EdmEntity {

// TODO for def -> @none there are multiple values present
private Literal<String> type;
private Map<Literal<String>, List<Literal<String>>> title;

// todo
private Map<Literal<String>, List<Literal<String>>> alternative;
private Map<Literal<String>, List<Literal<String>>> description;
private Map<Literal<String>, List<Literal<String>>> creator;
private Map<Literal<String>, List<Literal<String>>> identifier;
private List<Literal<String>> proxyIn;
private Literal<String> proxyFor;

public Literal<String> getType() {
return type;
}

public void setType(Literal<String> type) {
this.type = type;
}

public Literal<String> getTitle(String language) {
return title.get(language).get(0);
}

public void setTitle(Map<Literal<String>,List<Literal<String>>> title) {
this.title = title;
}

public Literal<String> getAlternative(String language) {
return alternative.get(language).get(0);
}

public void setAlternative(Map<Literal<String>, List<Literal<String>>> alternative) {
this.alternative = alternative;
}

public Literal<String> getDescription(String language) {
return description.get(language).get(0);
}

public void setDescription(Map<Literal<String>, List<Literal<String>>> description) {
this.description = description;
}

public Literal<String> getCreator(String language) {
return creator.get(language).get(0);
}

public void setCreator(Map<Literal<String>, List<Literal<String>>> creator) {
this.creator = creator;
}

public Literal<String> getIdentifier(String language) {
return identifier.get(language).get(0);
}

public void setIdentifier(Map<Literal<String>, List<Literal<String>>> identifier) {
this.identifier = identifier;
}

public List<Literal<String>> getProxyIn() {
return proxyIn;
}

public void setProxyIn(List<Literal<String>> proxyIn) {
this.proxyIn = proxyIn;
}

public Literal<String> getProxyFor() {
return proxyFor;
}

public void setProxyFor(Literal<String> proxyFor) {
this.proxyFor = proxyFor;
}

// this is for @none
public List<Literal<String>> getTitles() {
return title.get("@none");
}

public List<Literal<String>> getAlternatives() {
return alternative.get("@none");
}

public List<Literal<String>> getCreators() {
return creator.get("@none");
}

public List<Literal<String>> getIdentifiers() {
return identifier.get("@none");
}



}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package eu.europeana.api.record.impl;

public class Record {

private ProvidedCHO providedCHO;
private Proxy proxy;
private Aggregation aggregation;
private EuropeanaAggregation europeanaAggregation;
private WebResource webResource;
private TechMetadata techMetadata;
private Agent agent;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package eu.europeana.api.record.impl;

public class TechMetadata {

private Long fileByteSize;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package eu.europeana.api.record.impl;

import eu.europeana.api.record.datatypes.Literal;

public class WebResource extends EdmEntity {

private Literal<String> type;

public Literal<String> getType() {
return type;
}

public void setType(Literal<String> type) {
this.type = type;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package eu.europeana.api.record.vocabulary;

public interface EntityKeyword {

public String getJsonValue();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package eu.europeana.api.record.vocabulary;

public enum EntityTypes implements EntityKeyword {
Organization("Organization"),
Concept("Concept"),
Agent("Agent"),
Place("Place"),
TimeSpan("TimeSpan");

private String entityType;

public String getEntityType() {
return entityType;
}


EntityTypes(String entityType) {
this.entityType = entityType;

}

@Override
public String getJsonValue() {
return getEntityType();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package eu.europeana.api.record.vocabulary;

public interface RecordFields {

public static final String CONTEXT = "@context";
public static final String EDM_CONTEXT = "http://www.europeana.eu/schemas/context/edm.jsonld";
}
Loading