Skip to content

Commit 2570488

Browse files
jasomagermanattanasio
authored andcommitted
add a hierarchy property and modify the adapter to read it #235 (#236)
1 parent 840e684 commit 2570488

File tree

3 files changed

+55
-9
lines changed

3 files changed

+55
-9
lines changed

src/main/java/com/ibm/watson/developer_cloud/alchemy/v1/model/ImageKeyword.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ public class ImageKeyword extends GenericModel {
3232
/** The text. */
3333
private String text;
3434

35+
/** The hierarchy. */
36+
private String hierarchy;
37+
3538
/**
3639
* Gets the score.
3740
*
@@ -68,4 +71,22 @@ public void setText(String text) {
6871
this.text = text;
6972
}
7073

74+
/**
75+
* Sets the hierarchy.
76+
*
77+
* @param hierarchy The hierarchy.
78+
*/
79+
public void setHierarchy(String hierarchy) {
80+
this.hierarchy = hierarchy;
81+
}
82+
83+
/**
84+
* Gets the hierarchy. A value is only present if the request that produced this instance
85+
* was made with {@code knowledgeGraph = true}.
86+
*
87+
* @return The hierarchy, if it exists.
88+
*/
89+
public String getHierarchy() {
90+
return hierarchy;
91+
}
7192
}

src/main/java/com/ibm/watson/developer_cloud/alchemy/v1/util/ImageKeywordTypeAdapter.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313
*/
1414
package com.ibm.watson.developer_cloud.alchemy.v1.util;
1515

16-
import java.io.IOException;
17-
1816
import com.google.gson.TypeAdapter;
1917
import com.google.gson.stream.JsonReader;
2018
import com.google.gson.stream.JsonToken;
2119
import com.google.gson.stream.JsonWriter;
2220
import com.ibm.watson.developer_cloud.alchemy.v1.model.ImageKeyword;
2321

22+
import java.io.IOException;
23+
2424
/**
2525
* Type Adapter for the {@link ImageKeyword} class.
2626
*/
@@ -50,6 +50,16 @@ public ImageKeyword read(JsonReader reader) throws IOException {
5050
final String score = reader.nextString();
5151
if (score != null && !score.isEmpty())
5252
ImageKeyword.setScore(Double.valueOf(score));
53+
} else if (name.equals("knowledgeGraph")) {
54+
reader.beginObject();
55+
if (reader.hasNext() && reader.nextName().equals("typeHierarchy")) {
56+
final String hierarchy = reader.nextString();
57+
ImageKeyword.setHierarchy(hierarchy);
58+
}
59+
while (reader.hasNext()) {
60+
reader.skipValue();
61+
}
62+
reader.endObject();
5363
} else {
5464
reader.skipValue();
5565
}

src/test/java/com/ibm/watson/developer_cloud/alchemy/v1/AlchemyVisionIT.java

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,21 @@
1313
*/
1414
package com.ibm.watson.developer_cloud.alchemy.v1;
1515

16-
import java.io.File;
17-
import java.io.FileInputStream;
18-
19-
import org.junit.Assert;
20-
import org.junit.Before;
21-
import org.junit.Test;
22-
2316
import com.ibm.watson.developer_cloud.WatsonServiceTest;
2417
import com.ibm.watson.developer_cloud.alchemy.v1.model.ImageFaces;
18+
import com.ibm.watson.developer_cloud.alchemy.v1.model.ImageKeyword;
2519
import com.ibm.watson.developer_cloud.alchemy.v1.model.ImageKeywords;
2620
import com.ibm.watson.developer_cloud.alchemy.v1.model.ImageLink;
2721
import com.ibm.watson.developer_cloud.alchemy.v1.model.ImageSceneText;
2822
import com.ibm.watson.developer_cloud.alchemy.v1.model.ImageSceneTextLine;
2923
import com.ibm.watson.developer_cloud.alchemy.v1.model.ImageSceneTextLine.Word;
3024
import com.squareup.okhttp.HttpUrl;
25+
import org.junit.Assert;
26+
import org.junit.Before;
27+
import org.junit.Test;
28+
29+
import java.io.File;
30+
import java.io.FileInputStream;
3131

3232
/**
3333
* The Class AlchemyVisionTest.
@@ -132,7 +132,22 @@ public void testGetRankedImageKeywordsFromImage() {
132132
final ImageKeywords image = service.getImageKeywords(imageFile, null, null);
133133

134134
Assert.assertNotNull(image);
135+
}
136+
137+
/**
138+
* Test get ranked image keywords from image with knowledge graph data included.
139+
*/
140+
@Test
141+
public void testGetRankedImageKeywordsFromImageWithKnowledgeGraph() {
142+
final File imageFile = new File(IMAGE_OBAMA);
143+
final ImageKeywords image = service.getImageKeywords(imageFile, null, true);
135144

145+
Assert.assertNotNull(image);
146+
if (image.getImageKeywords() != null && !image.getImageKeywords().isEmpty()) {
147+
for (ImageKeyword keyword : image.getImageKeywords()) {
148+
Assert.assertNotNull(keyword.getHierarchy());
149+
}
150+
}
136151
}
137152

138153
/**

0 commit comments

Comments
 (0)