Search in sources :

Example 16 with Page

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;
}
Also used : Arrays(java.util.Arrays) MAINTAIN_PDF_ASPECT_RATIO(org.alfresco.repo.rendition2.RenditionDefinition2.MAINTAIN_PDF_ASPECT_RATIO) RESIZE_HEIGHT(org.alfresco.repo.rendition2.RenditionDefinition2.RESIZE_HEIGHT) END_PAGE(org.alfresco.repo.rendition2.RenditionDefinition2.END_PAGE) TIMEOUT(org.alfresco.repo.rendition2.RenditionDefinition2.TIMEOUT) MAINTAIN_ASPECT_RATIO(org.alfresco.repo.rendition2.RenditionDefinition2.MAINTAIN_ASPECT_RATIO) Map(java.util.Map) AUTO_ORIENT(org.alfresco.repo.rendition2.RenditionDefinition2.AUTO_ORIENT) START_PAGE(org.alfresco.repo.rendition2.RenditionDefinition2.START_PAGE) CROP_WIDTH(org.alfresco.repo.rendition2.RenditionDefinition2.CROP_WIDTH) DURATION(org.alfresco.repo.rendition2.RenditionDefinition2.DURATION) TransformationOptionLimits(org.alfresco.service.cmr.repository.TransformationOptionLimits) Collection(java.util.Collection) MimetypeMap(org.alfresco.repo.content.MimetypeMap) Set(java.util.Set) CROP_GRAVITY(org.alfresco.repo.rendition2.RenditionDefinition2.CROP_GRAVITY) TransformationSourceOptions(org.alfresco.service.cmr.repository.TransformationSourceOptions) TransformationOptions(org.alfresco.service.cmr.repository.TransformationOptions) CROP_HEIGHT(org.alfresco.repo.rendition2.RenditionDefinition2.CROP_HEIGHT) List(java.util.List) INCLUDE_CONTENTS(org.alfresco.repo.rendition2.RenditionDefinition2.INCLUDE_CONTENTS) PagedSourceOptions(org.alfresco.service.cmr.repository.PagedSourceOptions) LogFactory(org.apache.commons.logging.LogFactory) ALPHA_REMOVE(org.alfresco.repo.rendition2.RenditionDefinition2.ALPHA_REMOVE) ALLOW_PDF_ENLARGEMENT(org.alfresco.repo.rendition2.RenditionDefinition2.ALLOW_PDF_ENLARGEMENT) RESIZE_PERCENTAGE(org.alfresco.repo.rendition2.RenditionDefinition2.RESIZE_PERCENTAGE) CropSourceOptions(org.alfresco.service.cmr.repository.CropSourceOptions) THUMBNAIL(org.alfresco.repo.rendition2.RenditionDefinition2.THUMBNAIL) CROP_X_OFFSET(org.alfresco.repo.rendition2.RenditionDefinition2.CROP_X_OFFSET) CROP_Y_OFFSET(org.alfresco.repo.rendition2.RenditionDefinition2.CROP_Y_OFFSET) RuntimeExecutableContentTransformerOptions(org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerOptions) HashMap(java.util.HashMap) MIMETYPE_PDF(org.alfresco.repo.content.MimetypeMap.MIMETYPE_PDF) CROP_PERCENTAGE(org.alfresco.repo.rendition2.RenditionDefinition2.CROP_PERCENTAGE) WIDTH(org.alfresco.repo.rendition2.RenditionDefinition2.WIDTH) SWFTransformationOptions(org.alfresco.repo.content.transform.swf.SWFTransformationOptions) CollectionUtils.containsAny(org.springframework.util.CollectionUtils.containsAny) ImageResizeOptions(org.alfresco.repo.content.transform.magick.ImageResizeOptions) InitializingBean(org.springframework.beans.factory.InitializingBean) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) ImageTransformationOptions(org.alfresco.repo.content.transform.magick.ImageTransformationOptions) RESIZE_WIDTH(org.alfresco.repo.rendition2.RenditionDefinition2.RESIZE_WIDTH) OFFSET(org.alfresco.repo.rendition2.RenditionDefinition2.OFFSET) FLASH_VERSION(org.alfresco.repo.rendition2.RenditionDefinition2.FLASH_VERSION) ALLOW_ENLARGEMENT(org.alfresco.repo.rendition2.RenditionDefinition2.ALLOW_ENLARGEMENT) PAGE(org.alfresco.repo.rendition2.RenditionDefinition2.PAGE) HEIGHT(org.alfresco.repo.rendition2.RenditionDefinition2.HEIGHT) MAX_SOURCE_SIZE_K_BYTES(org.alfresco.repo.rendition2.RenditionDefinition2.MAX_SOURCE_SIZE_K_BYTES) StringJoiner(java.util.StringJoiner) PropertyCheck(org.alfresco.util.PropertyCheck) TemporalSourceOptions(org.alfresco.service.cmr.repository.TemporalSourceOptions) Log(org.apache.commons.logging.Log) TemporalSourceOptions(org.alfresco.service.cmr.repository.TemporalSourceOptions) ImageTransformationOptions(org.alfresco.repo.content.transform.magick.ImageTransformationOptions) PagedSourceOptions(org.alfresco.service.cmr.repository.PagedSourceOptions) CropSourceOptions(org.alfresco.service.cmr.repository.CropSourceOptions) TransformationOptions(org.alfresco.service.cmr.repository.TransformationOptions) SWFTransformationOptions(org.alfresco.repo.content.transform.swf.SWFTransformationOptions) ImageTransformationOptions(org.alfresco.repo.content.transform.magick.ImageTransformationOptions) TransformationOptionLimits(org.alfresco.service.cmr.repository.TransformationOptionLimits) SWFTransformationOptions(org.alfresco.repo.content.transform.swf.SWFTransformationOptions) ImageResizeOptions(org.alfresco.repo.content.transform.magick.ImageResizeOptions) List(java.util.List) ArrayList(java.util.ArrayList) StringJoiner(java.util.StringJoiner) HashSet(java.util.HashSet)

Example 17 with Page

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()));
}
Also used : AbstractMessage(com.google.protobuf.AbstractMessage) ListPagesPagedResponse(com.google.cloud.dialogflow.cx.v3.PagesClient.ListPagesPagedResponse) Test(org.junit.Test)

Example 18 with Page

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);
}
Also used : PagesClient(com.google.cloud.dialogflow.cx.v3beta1.PagesClient) ListPagesRequest(com.google.cloud.dialogflow.cx.v3beta1.ListPagesRequest) Page(com.google.cloud.dialogflow.cx.v3beta1.Page) Test(org.junit.Test)

Example 19 with Page

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);
}
Also used : Page(com.google.cloud.dialogflow.cx.v3beta1.Page) GetPageRequest(com.google.cloud.dialogflow.cx.v3beta1.GetPageRequest) Test(org.junit.Test)

Example 20 with 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();
}
Also used : Agent(com.google.cloud.dialogflow.cx.v3beta1.Agent) CreateEntityTypeRequest(com.google.cloud.dialogflow.cx.v3beta1.CreateEntityTypeRequest) CreatePageRequest(com.google.cloud.dialogflow.cx.v3beta1.CreatePageRequest) Intent(com.google.cloud.dialogflow.cx.v3beta1.Intent) Page(com.google.cloud.dialogflow.cx.v3beta1.Page) CreateTransitionRouteGroupRequest(com.google.cloud.dialogflow.cx.v3beta1.CreateTransitionRouteGroupRequest) Flow(com.google.cloud.dialogflow.cx.v3beta1.Flow) EntityType(com.google.cloud.dialogflow.cx.v3beta1.EntityType) Version(com.google.cloud.dialogflow.cx.v3beta1.Version) CreateFlowRequest(com.google.cloud.dialogflow.cx.v3beta1.CreateFlowRequest) TransitionRouteGroup(com.google.cloud.dialogflow.cx.v3beta1.TransitionRouteGroup) CreateVersionRequest(com.google.cloud.dialogflow.cx.v3beta1.CreateVersionRequest) CreateIntentRequest(com.google.cloud.dialogflow.cx.v3beta1.CreateIntentRequest) BeforeClass(org.junit.BeforeClass)

Aggregations

ArrayList (java.util.ArrayList)9 Test (org.junit.Test)9 ByteString (com.google.protobuf.ByteString)8 Page (com.google.cloud.dialogflow.cx.v3beta1.Page)7 AnnotateImageResponse (com.google.cloud.vision.v1.AnnotateImageResponse)6 Block (com.google.cloud.vision.v1.Block)6 Feature (com.google.cloud.vision.v1.Feature)6 ImageAnnotatorClient (com.google.cloud.vision.v1.ImageAnnotatorClient)6 Page (com.google.cloud.vision.v1.Page)6 Paragraph (com.google.cloud.vision.v1.Paragraph)6 Symbol (com.google.cloud.vision.v1.Symbol)6 Word (com.google.cloud.vision.v1.Word)6 Page (com.google.cloud.dialogflow.cx.v3.Page)4 FileInputStream (java.io.FileInputStream)4 PagesClient (com.google.cloud.dialogflow.cx.v3.PagesClient)3 AnnotateImageRequest (com.google.cloud.vision.v1.AnnotateImageRequest)3 BatchAnnotateImagesResponse (com.google.cloud.vision.v1.BatchAnnotateImagesResponse)3 Image (com.google.cloud.vision.v1.Image)3 TextAnnotation (com.google.cloud.vision.v1.TextAnnotation)3 PropertiesPage (com.adobe.cq.testing.selenium.pageobject.cq.sites.PropertiesPage)2