Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
langsamu committed Aug 5, 2023
1 parent f6cdd19 commit 5028aff
Show file tree
Hide file tree
Showing 23 changed files with 649 additions and 0 deletions.
30 changes: 30 additions & 0 deletions declarative/annotations/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.inrupt.rdf</groupId>
<artifactId>inrupt-rdf-wrapping-declarative</artifactId>
<version>1.0.1-SNAPSHOT</version>
</parent>

<artifactId>inrupt-rdf-wrapping-declarative-annotations</artifactId>
<name>Inrupt RDF Wrapping Declarative - Annotations</name>

<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.inrupt.rdf.wrapping.declarative.annotations;

import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.CLASS;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

@Target(TYPE)
@Retention(CLASS)
@Documented
public @interface Dataset {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* Copyright Inrupt Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.inrupt.rdf.wrapping.declarative.annotations;

import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.CLASS;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

@Target(TYPE)
@Retention(CLASS)
@Documented
public @interface Graph {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* Copyright Inrupt Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.inrupt.rdf.wrapping.declarative.annotations;

import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.CLASS;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

@Target(TYPE)
@Retention(CLASS)
@Documented
public @interface Resource {
}
32 changes: 32 additions & 0 deletions declarative/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.inrupt.rdf</groupId>
<artifactId>inrupt-rdf-wrapping</artifactId>
<version>1.0.1-SNAPSHOT</version>
</parent>

<artifactId>inrupt-rdf-wrapping-declarative</artifactId>
<name>Inrupt RDF Wrapping Declarative</name>
<packaging>pom</packaging>

<modules>
<module>annotations</module>
<module>processor</module>
<module>test</module>
<module>template</module>
</modules>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
71 changes: 71 additions & 0 deletions declarative/processor/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.inrupt.rdf</groupId>
<artifactId>inrupt-rdf-wrapping-declarative</artifactId>
<version>1.0.1-SNAPSHOT</version>
</parent>

<artifactId>inrupt-rdf-wrapping-declarative-processor</artifactId>
<name>Inrupt RDF Wrapping Declarative - Processor</name>
<description>
<!-- TODO: Write -->
</description>

<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>

<jboss.logmanager.version>3.0.1.Final</jboss.logmanager.version>
</properties>

<dependencies>
<dependency>
<groupId>com.inrupt.rdf</groupId>
<artifactId>inrupt-rdf-wrapping-declarative-annotations</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.jboss.logmanager</groupId>
<artifactId>jboss-logmanager</artifactId>
<version>${jboss.logmanager.version}</version>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<!-- Disable annotation processing on project compile because this is an annotation processor --> <execution>
<id>default-compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<compilerArgument>-proc:none</compilerArgument>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*
* Copyright Inrupt Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package com.inrupt.rdf.wrapping.declarative.processor;

import java.util.Set;

import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.annotation.processing.SupportedSourceVersion;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.Element;
import javax.lang.model.element.TypeElement;

import org.jboss.logging.Logger;

@SupportedAnnotationTypes("com.inrupt.rdf.wrapping.declarative.annotations.*")
@SupportedSourceVersion(SourceVersion.RELEASE_8)
public class Processor extends AbstractProcessor {
private static final Logger LOG = Logger.getLogger(Processor.class);

@Override
public boolean process(final Set<? extends TypeElement> annotations, final RoundEnvironment roundEnv) {
LOG.infov("annotations {0}", annotations);

for (TypeElement annotation : annotations) {
final Set<? extends Element> annotatedElements = roundEnv.getElementsAnnotatedWith(annotation);
LOG.infov("annotatedElements {0}", annotatedElements);
}

return true;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
com.inrupt.rdf.wrapping.declarative.processor.Processor
35 changes: 35 additions & 0 deletions declarative/template/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.inrupt.rdf</groupId>
<artifactId>inrupt-rdf-wrapping-declarative</artifactId>
<version>1.0.1-SNAPSHOT</version>
</parent>

<artifactId>inrupt-rdf-wrapping-declarative-template</artifactId>
<name>Inrupt RDF Wrapping Declarative - Template</name>
<description>
Examples of wrapper interfaces and the implementations the Processor should generate from them
</description>

<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>

<dependencies>
<dependency>
<groupId>com.inrupt.rdf</groupId>
<artifactId>inrupt-rdf-wrapping-jena</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.inrupt.rdf.wrapping.declarative.template;

import org.apache.jena.query.Dataset;

// @Dataset
public interface ExampleDataset {
static ExampleDataset wrap(final Dataset original) {
return Manager.wrap(ExampleDataset.class, original);
}

// @DefaultGraph
ExampleGraph getGraph();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.inrupt.rdf.wrapping.declarative.template;

import javax.annotation.processing.Generated;

import org.apache.jena.query.Dataset;
import org.apache.jena.sparql.core.DatasetGraph;
import org.apache.jena.sparql.core.DatasetGraphFactory;
import org.apache.jena.sparql.core.DatasetImpl;

/**
* Warning this class consists of generated code.
*/
@Generated(value = "TODO: FQCN of generator", date = "TODO: Generation date")
public class ExampleDataset_$impl extends DatasetImpl implements ExampleDataset {

protected ExampleDataset_$impl(final DatasetGraph original) {
super(original);
}

public static ExampleDataset wrap(final Dataset original) {
return new ExampleDataset_$impl(original.asDatasetGraph());
}

public static ExampleDataset create() {
return new ExampleDataset_$impl(DatasetGraphFactory.create());
}

@Override
public ExampleGraph getGraph() {
return ExampleGraph.wrap(getDefaultModel());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.inrupt.rdf.wrapping.declarative.template;

import org.apache.jena.rdf.model.Model;

// @Graph
public interface ExampleGraph {
static ExampleGraph wrap(final Model original) {
return Manager.wrap(ExampleGraph.class, original);
}

// @FirstSubjectOf(RDF.type, "urn:example:C")
ExampleNode1 getResource();
}
Loading

0 comments on commit 5028aff

Please sign in to comment.