Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Genesys PGR
Genesys Backend
Commits
2e578d99
Commit
2e578d99
authored
Feb 08, 2014
by
Matija Obreza
Browse files
JSON serialization for Crop, CropRule
parent
10a127db
Changes
5
Hide whitespace changes
Inline
Side-by-side
src/main/java/org/genesys2/server/model/impl/Crop.java
View file @
2e578d99
...
...
@@ -30,16 +30,19 @@ import javax.persistence.Transient;
import
org.apache.commons.lang.StringUtils
;
import
org.genesys2.server.model.AuditedModel
;
import
org.genesys2.server.servlet.controller.rest.serialization.CropSerializer
;
import
org.hibernate.search.annotations.Field
;
import
org.hibernate.search.annotations.Indexed
;
import
org.hibernate.search.annotations.Store
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
@Entity
@Table
(
name
=
"crop"
)
@Indexed
@JsonSerialize
(
using
=
CropSerializer
.
class
)
public
class
Crop
extends
AuditedModel
{
private
static
final
long
serialVersionUID
=
-
2686341831839109257L
;
...
...
src/main/java/org/genesys2/server/model/impl/CropRule.java
View file @
2e578d99
...
...
@@ -25,6 +25,9 @@ import javax.persistence.Table;
import
javax.persistence.UniqueConstraint
;
import
org.genesys2.server.model.BusinessModel
;
import
org.genesys2.server.servlet.controller.rest.serialization.CropRuleSerializer
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
/**
* Crop rules establish which taxonomies are part of a {@link Crop}.
...
...
@@ -33,6 +36,7 @@ import org.genesys2.server.model.BusinessModel;
*/
@Entity
@Table
(
name
=
"croprule"
,
uniqueConstraints
=
{
@UniqueConstraint
(
columnNames
=
{
"cropId"
,
"genus"
,
"species"
})
})
@JsonSerialize
(
using
=
CropRuleSerializer
.
class
)
public
class
CropRule
extends
BusinessModel
{
private
static
final
long
serialVersionUID
=
-
2336100072991067193L
;
...
...
src/main/java/org/genesys2/server/servlet/controller/rest/CropsController.java
View file @
2e578d99
...
...
@@ -70,7 +70,7 @@ public class CropsController extends RestController {
Object
listCrops
()
{
LOG
.
info
(
"Listing crops"
);
List
<
Crop
>
crops
=
cropService
.
list
(
LocaleContextHolder
.
getLocale
());
return
OAuth2Cleanup
.
clean
(
crops
)
;
return
crops
;
}
/**
...
...
@@ -109,7 +109,7 @@ public class CropsController extends RestController {
public
@ResponseBody
Object
getCrop
(
@PathVariable
(
"shortName"
)
String
shortName
)
throws
AuthorizationException
{
LOG
.
info
(
"Getting crop "
+
shortName
);
return
OAuth2Cleanup
.
clean
(
cropService
.
getCrop
(
shortName
)
)
;
return
cropService
.
getCrop
(
shortName
);
}
/**
...
...
src/main/java/org/genesys2/server/servlet/controller/rest/serialization/CropRuleSerializer.java
0 → 100644
View file @
2e578d99
/**
* Copyright 2013 Global Crop Diversity Trust
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
package
org.genesys2.server.servlet.controller.rest.serialization
;
import
java.io.IOException
;
import
org.genesys2.server.model.impl.CropRule
;
import
com.fasterxml.jackson.core.JsonGenerator
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.JsonSerializer
;
import
com.fasterxml.jackson.databind.SerializerProvider
;
public
class
CropRuleSerializer
extends
JsonSerializer
<
CropRule
>
{
@Override
public
void
serialize
(
CropRule
cropRule
,
JsonGenerator
jgen
,
SerializerProvider
sp
)
throws
IOException
,
JsonProcessingException
{
if
(
cropRule
==
null
)
{
jgen
.
writeNull
();
}
else
{
jgen
.
writeStartObject
();
jgen
.
writeObjectField
(
"id"
,
cropRule
.
getId
());
jgen
.
writeObjectField
(
"genus"
,
cropRule
.
getGenus
());
if
(
cropRule
.
getSpecies
()
!=
null
)
jgen
.
writeObjectField
(
"species"
,
cropRule
.
getSpecies
());
if
(
cropRule
.
getCrop
()
!=
null
)
jgen
.
writeObjectField
(
"_crop"
,
cropRule
.
getCrop
().
getShortName
());
jgen
.
writeEndObject
();
}
}
}
src/main/java/org/genesys2/server/servlet/controller/rest/CropSerializer.java
→
src/main/java/org/genesys2/server/servlet/controller/rest/
serialization/
CropSerializer.java
View file @
2e578d99
...
...
@@ -14,23 +14,42 @@
* limitations under the License.
**/
package
org.genesys2.server.servlet.controller.rest
;
package
org.genesys2.server.servlet.controller.rest
.serialization
;
import
java.io.IOException
;
import
org.codehaus.jackson.JsonGenerator
;
import
org.codehaus.jackson.JsonProcessingException
;
import
org.codehaus.jackson.map.JsonSerializer
;
import
org.codehaus.jackson.map.SerializerProvider
;
import
org.apache.commons.lang.StringUtils
;
import
org.genesys2.server.model.impl.Crop
;
import
org.springframework.stereotype.Component
;
import
org.genesys2.server.model.impl.CropRule
;
import
com.fasterxml.jackson.core.JsonGenerator
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.JsonSerializer
;
import
com.fasterxml.jackson.databind.SerializerProvider
;
@Component
public
class
CropSerializer
extends
JsonSerializer
<
Crop
>
{
@Override
public
void
serialize
(
Crop
value
,
JsonGenerator
jgen
,
SerializerProvider
provider
)
throws
IOException
,
JsonProcessingException
{
// FIXME Does not do anything!
public
void
serialize
(
Crop
crop
,
JsonGenerator
jgen
,
SerializerProvider
sp
)
throws
IOException
,
JsonProcessingException
{
if
(
crop
==
null
)
{
jgen
.
writeNull
();
}
else
{
jgen
.
writeStartObject
();
jgen
.
writeObjectField
(
"shortName"
,
crop
.
getShortName
());
if
(
StringUtils
.
isNotBlank
(
crop
.
getDescription
()))
jgen
.
writeObjectField
(
"description"
,
crop
.
getDescription
());
if
(
StringUtils
.
isNotBlank
(
crop
.
getI18n
()))
jgen
.
writeObjectField
(
"i18n"
,
crop
.
getI18n
());
jgen
.
writeArrayFieldStart
(
"rules"
);
for
(
CropRule
cropRule
:
crop
.
getCropRules
())
{
jgen
.
writeObject
(
cropRule
);
}
jgen
.
writeEndArray
();
jgen
.
writeEndObject
();
}
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment