Android Open Source - Android-Activity-Tracker-for-Dynamics-CRM Soap Retrieve Multiple Parser






From Project

Back to project page Android-Activity-Tracker-for-Dynamics-CRM.

License

The source code is released under:

MIT License

If you think the Android project Android-Activity-Tracker-for-Dynamics-CRM listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

// Android Activity Tracker Sample app for Microsoft Dynamics CRM
///*w w w  . j  a v a2s  .c o  m*/
// Copyright (c) Microsoft Corporation
// All rights reserved.
// MIT License
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this software
// and associated documentation files (the ""Software""), to deal in the Software without
// restriction, including without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
//    The above copyright notice and this permission notice shall be included in all copies
//    or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
// BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

package com.microsoft.activitytracker.Core;

import com.microsoft.activitytracker.Classes.Entity;
import com.ximpleware.AutoPilot;
import com.ximpleware.VTDGen;
import com.ximpleware.VTDNav;

import org.xmlpull.v1.XmlPullParserException;

import java.io.IOException;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Scanner;

import retrofit.converter.ConversionException;
import retrofit.converter.Converter;
import retrofit.mime.TypedInput;
import retrofit.mime.TypedOutput;

public class SoapRetrieveMultipleParser implements Converter {

    public static ArrayList<Entity> parseSoapXml(String XmlIn) throws XmlPullParserException, IOException
    {
        ArrayList<Entity> Entities = new ArrayList<Entity>();

        try {

            VTDGen vtdGen = new VTDGen();
            vtdGen.setDoc(XmlIn.getBytes());
            vtdGen.parse(true);

            VTDNav vtdNav = vtdGen.getNav();
            AutoPilot autoPilot = new AutoPilot(vtdNav);
            autoPilot.selectElementNS("http://schemas.microsoft.com/xrm/2011/Contracts", "Entity");

            while (autoPilot.iterate())
            {
                VTDNav vtdNavClone = vtdNav.cloneNav();
                //move to attributes
                vtdNavClone.toElement(VTDNav.FIRST_CHILD);

                Entity thisEntity = new Entity();

                do {

                    if (vtdNavClone.toNormalizedString(vtdNavClone.getCurrentIndex()).equals("a:Attributes"))
                    {
                        VTDNav attributesNav = vtdNavClone.cloneNav();
                        attributesNav.toElement(VTDNav.FIRST_CHILD);

                        do {
                            VTDNav KeyValNav = attributesNav.cloneNav();

                            if (KeyValNav.toElement(VTDNav.FIRST_CHILD)) {
                                String value, key = KeyValNav.toString(KeyValNav.getText());

                                KeyValNav.toElement(VTDNav.NS);
                                if (KeyValNav.toElement(VTDNav.LAST_CHILD)) {
                                    value = KeyValNav.toString(KeyValNav.getText());
                                }
                                else {
                                    value = KeyValNav.toString(KeyValNav.getText());
                                }

                                thisEntity.attributes.put(key, value);
                            }
                        } while (attributesNav.toElement(VTDNav.NEXT_SIBLING));
                    }

                    if (vtdNavClone.toNormalizedString(vtdNavClone.getCurrentIndex()).equals("a:Id"))
                    {
                        thisEntity.setId(vtdNavClone.toString(vtdNavClone.getText()));
                    }

                    if (vtdNavClone.toNormalizedString(vtdNavClone.getCurrentIndex()).equals("a:LogicalName"))
                    {
                        thisEntity.setLogicalName(vtdNavClone.toString(vtdNavClone.getText()));
                    }

                } while(vtdNavClone.toElement(VTDNav.NEXT_SIBLING));

                Entities.add(thisEntity);
            }
        }

        catch(Exception ex) {
            ex.getCause().printStackTrace();
        }

        return Entities;
    }

    @Override
    public Object fromBody(TypedInput body, Type type) throws ConversionException
    {
        try
        {
            Scanner scanner = new Scanner(body.in()).useDelimiter("\\A");
            return parseSoapXml(scanner.hasNext() ? scanner.next() : "");
        }
        catch(Exception ex) {
            ex.getCause().printStackTrace();
            return null;
        }
    }

    @Override
    public TypedOutput toBody(Object object)
    {
        return null;
    }
}




Java Source Code List

com.microsoft.aad.adal.ADALError.java
com.microsoft.aad.adal.AuthenticationActivity.java
com.microsoft.aad.adal.AuthenticationCallback.java
com.microsoft.aad.adal.AuthenticationCancelError.java
com.microsoft.aad.adal.AuthenticationConstants.java
com.microsoft.aad.adal.AuthenticationContext.java
com.microsoft.aad.adal.AuthenticationException.java
com.microsoft.aad.adal.AuthenticationParameters.java
com.microsoft.aad.adal.AuthenticationRequestState.java
com.microsoft.aad.adal.AuthenticationRequest.java
com.microsoft.aad.adal.AuthenticationResult.java
com.microsoft.aad.adal.AuthenticationSettings.java
com.microsoft.aad.adal.BrokerProxy.java
com.microsoft.aad.adal.CacheKey.java
com.microsoft.aad.adal.ChallangeResponseBuilder.java
com.microsoft.aad.adal.DefaultTokenCacheStore.java
com.microsoft.aad.adal.Discovery.java
com.microsoft.aad.adal.ExceptionExtensions.java
com.microsoft.aad.adal.FileTokenCacheStore.java
com.microsoft.aad.adal.HashMapExtensions.java
com.microsoft.aad.adal.HttpWebRequest.java
com.microsoft.aad.adal.HttpWebResponse.java
com.microsoft.aad.adal.IBrokerProxy.java
com.microsoft.aad.adal.IConnectionService.java
com.microsoft.aad.adal.IDeviceCertificate.java
com.microsoft.aad.adal.IDiscovery.java
com.microsoft.aad.adal.IJWSBuilder.java
com.microsoft.aad.adal.ITokenCacheStore.java
com.microsoft.aad.adal.ITokenStoreQuery.java
com.microsoft.aad.adal.IWebRequestHandler.java
com.microsoft.aad.adal.IdToken.java
com.microsoft.aad.adal.JWSBuilder.java
com.microsoft.aad.adal.Logger.java
com.microsoft.aad.adal.MemoryTokenCacheStore.java
com.microsoft.aad.adal.Oauth2.java
com.microsoft.aad.adal.PRNGFixes.java
com.microsoft.aad.adal.PackageHelper.java
com.microsoft.aad.adal.PromptBehavior.java
com.microsoft.aad.adal.StorageHelper.java
com.microsoft.aad.adal.StringExtensions.java
com.microsoft.aad.adal.TokenCacheItem.java
com.microsoft.aad.adal.UserInfo.java
com.microsoft.aad.adal.WebRequestHandler.java
com.microsoft.aad.adal.package-info.java
com.microsoft.activitytracker.Activities.CheckInActivity.java
com.microsoft.activitytracker.Activities.ItemActivity.java
com.microsoft.activitytracker.Activities.MainActivity.java
com.microsoft.activitytracker.Activities.SetupActivity.java
com.microsoft.activitytracker.Adapters.ActivitiesItemAdapter.java
com.microsoft.activitytracker.Adapters.MainItemAdapter.java
com.microsoft.activitytracker.Classes.ActivityTracker.java
com.microsoft.activitytracker.Classes.Constants.java
com.microsoft.activitytracker.Classes.Entity.java
com.microsoft.activitytracker.Classes.RecentHistorydbHandler.java
com.microsoft.activitytracker.Classes.Utils.java
com.microsoft.activitytracker.Core.NetworkCalls.java
com.microsoft.activitytracker.Core.SoapExecuteParser.java
com.microsoft.activitytracker.Core.SoapRetrieveMultipleParser.java