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

Model description #2

Closed
wants to merge 7 commits into from
Closed
24 changes: 24 additions & 0 deletions modelimplementation/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?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>verapdf-library</artifactId>
<groupId>org.verapdf</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<groupId>com.verapdf</groupId>
<artifactId>modelimplementation</artifactId>
<version>1.0.0-SNAPSHOT</version>

<dependencies>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package org.verapdf.factory.cos;

import org.apache.pdfbox.cos.COSArray;
import org.verapdf.impl.pb.PBCosArray;
import org.verapdf.model.coslayer.CosArray;
import org.verapdf.model.coslayer.CosObject;

import java.util.List;

/**
* Created by Evgeniy Muravitskiy on 4/27/15.
* <p>
* Class for transforming COSArray of pdfbox to CosArray of abstract model.
* </p>
*/
public class PBCosArrayFactory implements PBCosFactory<org.verapdf.model.coslayer.CosArray, COSArray> {

/**
* Method for transforming COSArray to corresponding CosArray
*/
@Override
public CosArray generateCosObject(COSArray pdfBoxObject) {
return new PBCosArray(pdfBoxObject);
}

/**
* Method for transforming COSArray to corresponding CosArray. Also takes into account already
* exists objects.
*/
@Override
public CosArray generateCosObject(List<CosObject> parents, COSArray pdfBoxObject) {
for (CosObject object : parents)
if (object.equals(pdfBoxObject))
return (CosArray) object;

CosArray array = generateCosObject(pdfBoxObject);
parents.add(array);
return array;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package org.verapdf.factory.cos;

import org.apache.pdfbox.cos.COSBoolean;
import org.verapdf.model.coslayer.CosBool;
import org.verapdf.impl.pb.PBCosBool;
import org.verapdf.model.coslayer.CosObject;

import java.util.List;

/**
* Created by Evgeniy Muravitskiy on 4/28/15.
* <p>
* Class for transforming COSBoolean of pdfbox to CosBool of abstract model.
* </p>
*/
public class PBCosBoolFactory implements PBCosFactory<CosBool, COSBoolean> {

/** Method for transforming COSBoolean to corresponding CosBool
*/
@Override
public CosBool generateCosObject(COSBoolean pdfBoxObject) {
return new PBCosBool(pdfBoxObject);
}

/** Method for transforming COSBoolean to corresponding CosBool. Not takes into account already
* exists objects.
*/
@Override
public CosBool generateCosObject(List<CosObject> parents, COSBoolean pdfBoxObject) {
return generateCosObject(pdfBoxObject);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package org.verapdf.factory.cos;

import org.apache.pdfbox.cos.COSDictionary;
import org.verapdf.model.coslayer.CosDict;
import org.verapdf.impl.pb.PBCosDict;
import org.verapdf.model.coslayer.CosObject;

import java.util.List;

/**
* Created by Evgeniy Muravitskiy on 4/29/15.
* <p>
* Class for transforming COSDictionary of pdfbox to CosDict of abstract model.
* </p>
*/
public class PBCosDictFactory implements PBCosFactory<CosDict, COSDictionary> {

/**
* Method for transforming COSDictionary to corresponding CosDict
*/
@Override
public CosDict generateCosObject(COSDictionary pdfBoxObject) {
return new PBCosDict(pdfBoxObject);
}

/**
* Method for transforming COSDictionary to corresponding CosDict. Also takes into account already
* exists objects.
*/
@Override
public CosDict generateCosObject(List<CosObject> parents, COSDictionary pdfBoxObject) {
for (CosObject object : parents)
if (object.equals(pdfBoxObject))
return (CosDict) object;

CosDict dictionary = generateCosObject(pdfBoxObject);
parents.add(dictionary);
return dictionary;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package org.verapdf.factory.cos;

import org.apache.pdfbox.cos.COSDocument;
import org.verapdf.impl.pb.PBCosDocument;
import org.verapdf.model.coslayer.CosDocument;
import org.verapdf.model.coslayer.CosObject;

import java.util.List;

/**
* Created by Evgeniy Muravitskiy on 5/4/15.
* <p>
* Class for transforming COSDocument of pdf box to CosDocument of abstract model.
* </p>
*/
public class PBCosDocumentFactory implements PBCosFactory<CosDocument, COSDocument> {

/**
* Method for transforming COSDocument to corresponding CosDocument
*/
@Override
public CosDocument generateCosObject(COSDocument pdfBoxObject) {
return new PBCosDocument(pdfBoxObject);
}

/**
* Method for transforming COSDocument to corresponding CosDocument. Also takes into account already
* exists objects.
*/
@Override
public CosDocument generateCosObject(List<CosObject> parents, COSDocument pdfBoxObject) {
return generateCosObject(pdfBoxObject);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package org.verapdf.factory.cos;

import org.apache.pdfbox.cos.COSBase;
import org.verapdf.model.coslayer.CosObject;

import java.util.List;

/**
* Created by Evgeniy Muravitskiy on 4/27/15.
* <p>
* Interface which define transforming specific pdfbox object`s to specific object of
* abstract model.
* </p>
*/
interface PBCosFactory<T extends CosObject, S extends COSBase> {

/** Interface of method for transforming specific S type to corresponding T type
*/
T generateCosObject(S pdfBoxObject);

/** Interface of method for transforming specific S type to corresponding T type with parents check
*/
T generateCosObject(List<CosObject> parents, S pdfBoxObject);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package org.verapdf.factory.cos;

import org.apache.pdfbox.cos.COSBase;
import org.verapdf.model.coslayer.CosIndirect;
import org.verapdf.impl.pb.PBCosIndirect;
import org.verapdf.model.coslayer.CosObject;

import java.util.List;

/**
* Created by Evgeniy Muravitskiy on 4/29/15.
* <p>
* Class for transforming COSIndirect of pdfbox to CosInteger of abstract model.
* </p>
*/
public class PBCosIndirectFactory implements PBCosFactory<CosIndirect, COSBase> {
// TODO : check spacings
/** Method for transforming COSObject to corresponding CosIndirect
*/
@Override
public CosIndirect generateCosObject(COSBase pdfBoxObject) {
return new PBCosIndirect(pdfBoxObject, true);
}

/** Method for transforming COSObject to corresponding CosIndirect. Also takes into account already
* exists objects.
*/
@Override
public CosIndirect generateCosObject(List<CosObject> parents, COSBase pdfBoxObject) {
for (CosObject object : parents)
if (object.equals(pdfBoxObject))
return (CosIndirect) object;

CosIndirect indirect = generateCosObject(pdfBoxObject);
parents.add(indirect);
return indirect;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package org.verapdf.factory.cos;

import org.apache.pdfbox.cos.COSInteger;
import org.verapdf.model.coslayer.CosInteger;
import org.verapdf.impl.pb.PBCosInteger;
import org.verapdf.model.coslayer.CosObject;

import java.util.List;

/**
* Created by Evgeniy Muravitskiy on 4/27/15.
* <p>
* Class for transforming COSInteger of pdfbox to CosInteger of abstract model.
* </p>
*/
public class PBCosIntegerFactory implements PBCosFactory<CosInteger, COSInteger> {

/** Method for transforming COSInteger to corresponding CosInteger
*/
@Override
public CosInteger generateCosObject(COSInteger pdfBoxObject) {
return new PBCosInteger(pdfBoxObject);
}

@Override
public CosInteger generateCosObject(List<CosObject> parents, COSInteger pdfBoxObject) {
return generateCosObject(pdfBoxObject);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package org.verapdf.factory.cos;

import org.apache.pdfbox.cos.COSName;
import org.verapdf.model.coslayer.CosName;
import org.verapdf.impl.pb.PBCosName;
import org.verapdf.model.coslayer.CosObject;

import java.util.List;

/**
* Created by Evgeniy Muravitskiy on 4/27/15.
* <p>
* Class for transforming COSName of pdfbox to CosName of abstract model.
* </p>
*/
public class PBCosNameFactory implements PBCosFactory<CosName, COSName> {

/** Method for transforming COSName to corresponding CosName
*/
@Override
public CosName generateCosObject(COSName pdfBoxObject) {
return new PBCosName(pdfBoxObject);
}

@Override
public CosName generateCosObject(List<CosObject> parents, COSName pdfBoxObject) {
return generateCosObject(pdfBoxObject);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package org.verapdf.factory.cos;

import org.apache.pdfbox.cos.COSNull;
import org.verapdf.model.coslayer.CosNull;
import org.verapdf.impl.pb.PBCosNull;
import org.verapdf.model.coslayer.CosObject;

import java.util.List;

/**
* Created by Evgeniy Muravitskiy on 4/28/15.
* <p>
* Class for transforming COSNull of pdfbox to CosNull of abstract model.
* </p>
*/
public class PBCosNullFactory implements PBCosFactory<CosNull, COSNull> {

/** Method for transforming COSNull to corresponding CosNull
*/
@Override
public CosNull generateCosObject(COSNull pdfBoxObject) {
return PBCosNull.NULL;
}

@Override
public CosNull generateCosObject(List<CosObject> parents, COSNull pdfBoxObject) {
return generateCosObject(pdfBoxObject);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package org.verapdf.factory.cos;

import org.apache.pdfbox.cos.COSBase;
import org.verapdf.model.coslayer.CosObject;
import org.verapdf.impl.pb.PBCosObject;

import java.util.List;

/**
* Created by Evgeniy Muravitskiy on 4/27/15.
* <p>
* Class for transforming COSBase of pdfbox to CosObject of abstract model.
* This factory describe case when object of pdfbox model is empty.
* </p>
*/
class PBCosObjectFactory implements PBCosFactory<CosObject, COSBase> {

/** Method for transforming COSBase to corresponding CosObject
*/
@Override
public CosObject generateCosObject(COSBase pdfBoxObject) {
return new PBCosObject(pdfBoxObject);
}

@Override
public CosObject generateCosObject(List<CosObject> parents, COSBase pdfBoxObject) {
for (CosObject object : parents)
if (object.equals(pdfBoxObject))
return object;
CosObject object = generateCosObject(pdfBoxObject);
parents.add(object);
return object;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package org.verapdf.factory.cos;

import org.apache.pdfbox.cos.COSFloat;
import org.verapdf.model.coslayer.CosObject;
import org.verapdf.model.coslayer.CosReal;
import org.verapdf.impl.pb.PBCosReal;

import java.util.List;

/**
* Created by Evgeniy Muravitskiy on 4/28/15.
* <p>
* Class for transforming COSFloat of pdfbox to CosReal of abstract model.
* </p>
*/
public class PBCosRealFactory implements PBCosFactory<CosReal, COSFloat> {

/** Method for transforming COSFloat to corresponding CosReal
*/
@Override
public CosReal generateCosObject(COSFloat pdfBoxObject) {
return new PBCosReal(pdfBoxObject);
}

@Override
public CosReal generateCosObject(List<CosObject> parents, COSFloat pdfBoxObject) {
return generateCosObject(pdfBoxObject);
}
}
Loading