use of com.google.cloud.dialogflow.cx.v3.Page in project alfresco-repository by Alfresco.
the class TransformationOptionsConverter method getTransformationOptions.
/**
* @deprecated as we do not plan to use TransformationOptions moving forwards as local transformations will also
* use the same options as the Transform Service.
*/
@Deprecated
TransformationOptions getTransformationOptions(String renditionName, Map<String, String> options) {
TransformationOptions transformationOptions = null;
Set<String> optionNames = options.keySet();
// The "pdf" rendition is special as it was incorrectly set up as an SWFTransformationOptions in 6.0
// It should have been simply a TransformationOptions.
boolean isPdfRendition = "pdf".equals(renditionName);
Set<String> subclassOptionNames = new HashSet<>(optionNames);
subclassOptionNames.removeAll(LIMIT_OPTIONS);
subclassOptionNames.remove(INCLUDE_CONTENTS);
boolean hasOptions = !subclassOptionNames.isEmpty();
if (isPdfRendition || hasOptions) {
// The "pdf" rendition used the wrong TransformationOptions subclass.
if (isPdfRendition || FLASH_OPTIONS.containsAll(subclassOptionNames)) {
SWFTransformationOptions opts = new SWFTransformationOptions();
transformationOptions = opts;
opts.setFlashVersion(isPdfRendition ? "9" : options.get(FLASH_VERSION));
} else // that use ImageTransformOptions to specify width, height etc.
if (IMAGE_OPTIONS.containsAll(subclassOptionNames) || PDF_OPTIONS.containsAll(subclassOptionNames)) {
ImageTransformationOptions opts = new ImageTransformationOptions();
transformationOptions = opts;
if (containsAny(subclassOptionNames, RESIZE_OPTIONS)) {
ImageResizeOptions imageResizeOptions = new ImageResizeOptions();
opts.setResizeOptions(imageResizeOptions);
// PDF
ifSet(options, WIDTH, (v) -> imageResizeOptions.setWidth(Integer.parseInt(v)));
ifSet(options, HEIGHT, (v) -> imageResizeOptions.setHeight(Integer.parseInt(v)));
// ImageMagick
ifSet(options, RESIZE_WIDTH, (v) -> imageResizeOptions.setWidth(Integer.parseInt(v)));
ifSet(options, RESIZE_HEIGHT, (v) -> imageResizeOptions.setHeight(Integer.parseInt(v)));
ifSet(options, THUMBNAIL, (v) -> imageResizeOptions.setResizeToThumbnail(Boolean.parseBoolean(v)));
ifSet(options, RESIZE_PERCENTAGE, (v) -> imageResizeOptions.setPercentResize(Boolean.parseBoolean(v)));
set(options, ALLOW_ENLARGEMENT, (v) -> imageResizeOptions.setAllowEnlargement(Boolean.parseBoolean(v == null ? "true" : v)));
set(options, MAINTAIN_ASPECT_RATIO, (v) -> imageResizeOptions.setMaintainAspectRatio(Boolean.parseBoolean(v == null ? "true" : v)));
}
// ALPHA_REMOVE can be ignored as it is automatically added in the legacy code if the sourceMimetype is jpeg
set(options, AUTO_ORIENT, (v) -> opts.setAutoOrient(Boolean.parseBoolean(v == null ? "true" : v)));
boolean containsPaged = containsAny(subclassOptionNames, PAGED_OPTIONS);
boolean containsCrop = containsAny(subclassOptionNames, CROP_OPTIONS);
boolean containsTemporal = containsAny(subclassOptionNames, TEMPORAL_OPTIONS);
if (containsPaged || containsCrop || containsTemporal) {
List<TransformationSourceOptions> sourceOptionsList = new ArrayList<>();
if (containsPaged) {
// The legacy transformer options start at page 1, where as image magick and the local
// transforms start at 0;
PagedSourceOptions pagedSourceOptions = new PagedSourceOptions();
sourceOptionsList.add(pagedSourceOptions);
ifSet(options, START_PAGE, (v) -> pagedSourceOptions.setStartPageNumber(Integer.parseInt(v) + 1));
ifSet(options, END_PAGE, (v) -> pagedSourceOptions.setEndPageNumber(Integer.parseInt(v) + 1));
ifSet(options, PAGE, (v) -> {
int i = Integer.parseInt(v) + 1;
pagedSourceOptions.setStartPageNumber(i);
pagedSourceOptions.setEndPageNumber(i);
});
}
if (containsCrop) {
CropSourceOptions cropSourceOptions = new CropSourceOptions();
sourceOptionsList.add(cropSourceOptions);
ifSet(options, CROP_GRAVITY, (v) -> cropSourceOptions.setGravity(v));
ifSet(options, CROP_PERCENTAGE, (v) -> cropSourceOptions.setPercentageCrop(Boolean.parseBoolean(v)));
ifSet(options, CROP_WIDTH, (v) -> cropSourceOptions.setWidth(Integer.parseInt(v)));
ifSet(options, CROP_HEIGHT, (v) -> cropSourceOptions.setHeight(Integer.parseInt(v)));
ifSet(options, CROP_X_OFFSET, (v) -> cropSourceOptions.setXOffset(Integer.parseInt(v)));
ifSet(options, CROP_Y_OFFSET, (v) -> cropSourceOptions.setYOffset(Integer.parseInt(v)));
}
if (containsTemporal) {
TemporalSourceOptions temporalSourceOptions = new TemporalSourceOptions();
sourceOptionsList.add(temporalSourceOptions);
ifSet(options, DURATION, (v) -> temporalSourceOptions.setDuration(v));
ifSet(options, OFFSET, (v) -> temporalSourceOptions.setOffset(v));
}
opts.setSourceOptionsList(sourceOptionsList);
}
}
} else {
// This what the "pdf" rendition should have used in 6.0 and it is not unreasonable for a custom transformer
// and rendition to do the same.
transformationOptions = new TransformationOptions();
}
if (transformationOptions == null) {
StringJoiner sj = new StringJoiner("\n ");
sj.add("The RenditionDefinition2 " + renditionName + " contains options that cannot be mapped to TransformationOptions used by local transformers. " + " The TransformOptionConverter may need to be sub classed to support this conversion.");
HashSet<String> otherNames = new HashSet<>(optionNames);
otherNames.removeAll(FLASH_OPTIONS);
otherNames.removeAll(IMAGE_OPTIONS);
otherNames.removeAll(PDF_OPTIONS);
otherNames.removeAll(LIMIT_OPTIONS);
otherNames.forEach(sj::add);
sj.add("---");
optionNames.forEach(sj::add);
throw new IllegalArgumentException(sj.toString());
}
final TransformationOptions opts = transformationOptions;
ifSet(options, INCLUDE_CONTENTS, (v) -> opts.setIncludeEmbedded(Boolean.parseBoolean(v)));
if (containsAny(optionNames, LIMIT_OPTIONS)) {
TransformationOptionLimits limits = new TransformationOptionLimits();
transformationOptions.setLimits(limits);
ifSet(options, TIMEOUT, (v) -> limits.setTimeoutMs(Long.parseLong(v)));
limits.setMaxSourceSizeKBytes(maxSourceSizeKBytes);
limits.setReadLimitKBytes(readLimitTimeMs);
limits.setReadLimitTimeMs(readLimitKBytes);
limits.setMaxPages(maxPages);
limits.setPageLimit(pageLimit);
}
transformationOptions.setUse(renditionName);
return transformationOptions;
}
use of com.google.cloud.dialogflow.cx.v3.Page in project java-dialogflow-cx by googleapis.
the class PagesClientTest method listPagesTest.
@Test
public void listPagesTest() throws Exception {
Page responsesElement = Page.newBuilder().build();
ListPagesResponse expectedResponse = ListPagesResponse.newBuilder().setNextPageToken("").addAllPages(Arrays.asList(responsesElement)).build();
mockPages.addResponse(expectedResponse);
FlowName parent = FlowName.of("[PROJECT]", "[LOCATION]", "[AGENT]", "[FLOW]");
ListPagesPagedResponse pagedListResponse = client.listPages(parent);
List<Page> resources = Lists.newArrayList(pagedListResponse.iterateAll());
Assert.assertEquals(1, resources.size());
Assert.assertEquals(expectedResponse.getPagesList().get(0), resources.get(0));
List<AbstractMessage> actualRequests = mockPages.getRequests();
Assert.assertEquals(1, actualRequests.size());
ListPagesRequest actualRequest = ((ListPagesRequest) actualRequests.get(0));
Assert.assertEquals(parent.toString(), actualRequest.getParent());
Assert.assertTrue(channelProvider.isHeaderSent(ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
}
use of com.google.cloud.dialogflow.cx.v3.Page in project java-dialogflow-cx by googleapis.
the class ITSystemTest method listPagesTest.
@Test
public void listPagesTest() {
ListPagesRequest request = ListPagesRequest.newBuilder().setParent(flowName).build();
PagesClient.ListPagesPagedResponse pagedListResponse = pagesClient.listPages(request);
List<Page> pages = Lists.newArrayList(pagedListResponse.iterateAll());
boolean isPageExists = false;
for (Page page : pages) {
if (page.getName().equals(pageName)) {
assertPageDetails(page);
isPageExists = true;
}
}
assertTrue(isPageExists);
}
use of com.google.cloud.dialogflow.cx.v3.Page in project java-dialogflow-cx by googleapis.
the class ITSystemTest method getPageTest.
@Test
public void getPageTest() {
GetPageRequest request = GetPageRequest.newBuilder().setName(pageName).build();
Page page = pagesClient.getPage(request);
assertPageDetails(page);
}
use of com.google.cloud.dialogflow.cx.v3.Page in project java-dialogflow-cx by googleapis.
the class ITSystemTest method setUp.
@BeforeClass
public static void setUp() throws IOException, ExecutionException, InterruptedException {
/* create agents */
agentsClient = AgentsClient.create();
Agent agent = Agent.newBuilder().setDisplayName(DISPLAY_NAME).setDescription(DESCRIPTION).setTimeZone(AGENT_TIME_ZONE).setDefaultLanguageCode(DEFAULT_LANGUAGE_CODE).setStartFlow(ID).setEnableStackdriverLogging(true).build();
Agent response = agentsClient.createAgent(PARENT, agent);
agentName = response.getName();
/* create entity types */
entityTypesClient = EntityTypesClient.create();
EntityType entityType = EntityType.newBuilder().setAutoExpansionMode(EntityType.AutoExpansionMode.AUTO_EXPANSION_MODE_DEFAULT).setAutoExpansionModeValue(1).setDisplayName(DISPLAY_NAME).setEnableFuzzyExtraction(true).setKind(EntityType.Kind.KIND_LIST).build();
CreateEntityTypeRequest request = CreateEntityTypeRequest.newBuilder().setParent(agentName).setEntityType(entityType).build();
EntityType entityTypeResponse = entityTypesClient.createEntityType(request);
entityTypesName = entityTypeResponse.getName();
/* create flows */
flowsClient = FlowsClient.create();
Flow flow = Flow.newBuilder().setNluSettings(NLUSETTINGS).setDisplayName(DISPLAY_NAME).setDescription(DESCRIPTION).build();
CreateFlowRequest createFlowRequest = CreateFlowRequest.newBuilder().setParent(agentName).setFlow(flow).build();
Flow flowResponse = flowsClient.createFlow(createFlowRequest);
flowName = flowResponse.getName();
Flow trainFlow = Flow.newBuilder().setNluSettings(NLUSETTINGS).setDisplayName(DISPLAY_NAME2).setDescription(DESCRIPTION).build();
CreateFlowRequest createTrainFlowRequest = CreateFlowRequest.newBuilder().setParent(agentName).setFlow(trainFlow).build();
Flow trainFlowResponse = flowsClient.createFlow(createTrainFlowRequest);
trainFlowName = trainFlowResponse.getName();
/* create intents */
intentsClient = IntentsClient.create();
Intent intent = Intent.newBuilder().setDisplayName(DISPLAY_NAME).setPriority(1).build();
CreateIntentRequest createIntentRequest = CreateIntentRequest.newBuilder().setIntent(intent).setParent(agentName).build();
Intent intentResponse = intentsClient.createIntent(createIntentRequest);
intentsName = intentResponse.getName();
/* create pages */
pagesClient = PagesClient.create();
Page page = Page.newBuilder().setDisplayName(DISPLAY_NAME).build();
CreatePageRequest createPageRequest = CreatePageRequest.newBuilder().setPage(page).setParent(flowName).build();
Page pageResponse = pagesClient.createPage(createPageRequest);
pageName = pageResponse.getName();
/* create session */
sessionsClient = SessionsClient.create();
/* create transition route groups */
transitionRouteGroupsClient = TransitionRouteGroupsClient.create();
TransitionRouteGroup transitionRouteGroup = TransitionRouteGroup.newBuilder().setDisplayName(DISPLAY_NAME).build();
CreateTransitionRouteGroupRequest transitionRouteGroupRequest = CreateTransitionRouteGroupRequest.newBuilder().setParent(flowName).setTransitionRouteGroup(transitionRouteGroup).build();
TransitionRouteGroup transitionRouteGroupResponse = transitionRouteGroupsClient.createTransitionRouteGroup(transitionRouteGroupRequest);
transitionRouteGroupName = transitionRouteGroupResponse.getName();
/* create version */
versionsClient = VersionsClient.create();
Version version = Version.newBuilder().setStateValue(2).setDisplayName(DISPLAY_NAME).build();
CreateVersionRequest createVersionRequest = CreateVersionRequest.newBuilder().setParent(flowName).setVersion(version).build();
Version versionResponse = versionsClient.createVersionAsync(createVersionRequest).get();
versionName = versionResponse.getName();
}
Aggregations