All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.backendless.core.responder.policy.GroupResultAdaptingPolicy Maven / Gradle / Ivy

The newest version!
/*
 * ********************************************************************************************************************
 *  

* BACKENDLESS.COM CONFIDENTIAL *

* ******************************************************************************************************************** *

* Copyright 2012 BACKENDLESS.COM. All Rights Reserved. *

* NOTICE: All information contained herein is, and remains the property of Backendless.com and its suppliers, * if any. The intellectual and technical concepts contained herein are proprietary to Backendless.com and its * suppliers and may be covered by U.S. and Foreign Patents, patents in process, and are protected by trade secret * or copyright law. Dissemination of this information or reproduction of this material is strictly forbidden * unless prior written permission is obtained from Backendless.com. *

* ******************************************************************************************************************** */ package com.backendless.core.responder.policy; import weborb.client.IResponder; import weborb.reader.AnonymousObject; import weborb.reader.ArrayType; import weborb.reader.NamedObject; import weborb.types.IAdaptingType; import java.util.ArrayList; import java.util.List; public class GroupResultAdaptingPolicy implements IAdaptingPolicy { @Override public Object adapt( Class clazz, IAdaptingType entity, IResponder nextResponder ) { Object result; if( entity == null ) return null; NamedObject namedObj = (NamedObject) entity; List namedObjects = new ArrayList<>(); namedObjects.add( namedObj ); while( ((AnonymousObject) namedObjects.get( 0 ).getTypedObject()).getProperties().containsKey( "hasNextPage" ) ) { List nextLevel = new ArrayList<>(); for( NamedObject namedObject : namedObjects ) { ArrayType arrayType = (ArrayType) ((AnonymousObject) namedObject.getTypedObject()).getProperties().get( "items" ); Object[] dataArray = (Object[]) arrayType.getArray(); for( Object item : dataArray ) nextLevel.add( (NamedObject) item ); namedObjects = nextLevel; } } if( clazz != null && weborb.types.Types.getMappedClientClass( clazz.getName() ) == null ) { for( NamedObject namedObject : namedObjects ) namedObject.setDefaultType( clazz ); } result = entity.defaultAdapt(); if( nextResponder != null ) nextResponder.responseHandler( result ); return result; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy