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

net.smartcosmos.client.common.event.EventClient Maven / Gradle / Ivy

Go to download

Provides a thin client wrapper for accessing the SMART COSMOS platform web services

The newest version!
package net.smartcosmos.client.common.event;

/*
 * *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*
 * SMART COSMOS Platform Client
 * ===============================================================================
 * Copyright (C) 2013 - 2014 SMARTRAC Technology Fletcher, Inc.
 * ===============================================================================
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
 */

import net.smartcosmos.client.connectivity.ServerContext;
import net.smartcosmos.client.connectivity.ServiceException;
import net.smartcosmos.client.impl.base.AbstractFindableBaseClient;
import net.smartcosmos.client.impl.command.GetCollectionCommand;
import net.smartcosmos.client.impl.endpoint.EventEndpoints;
import net.smartcosmos.model.event.EventType;
import net.smartcosmos.model.event.IEvent;
import net.smartcosmos.pojo.event.Event;
import net.smartcosmos.util.json.ViewType;

import java.util.ArrayList;
import java.util.Collection;

class EventClient extends AbstractFindableBaseClient implements IEventClient
{
    EventClient(ServerContext context)
    {
        super(context);
    }

    @Override
    public IEvent findByUrn(String urn, ViewType viewType) throws ServiceException
    {
        return findByUrn(urn, EventEndpoints.findByUrn(urn, viewType), Event.class);
    }

    @Override
    public Collection findByEventType(EventType eventType) throws ServiceException
    {
        return findByEventType(eventType, ViewType.Standard);
    }

    @Override
    public Collection findByEventType(EventType eventType, ViewType viewType) throws ServiceException
    {
        GetCollectionCommand command = new GetCollectionCommand<>(context);
        return command.call(Event.class, EventEndpoints.findByEventType(eventType, viewType));
    }

    @Override
    public Collection findSince(long timestamp) throws ServiceException
    {
        return findSince(timestamp, ViewType.Standard);
    }

    @Override
    public Collection findSince(long timestamp, ViewType viewType) throws ServiceException
    {
        GetCollectionCommand command = new GetCollectionCommand<>(context);
        Collection dynamicEvents
                = command.call(DynamicEvent.class, EventEndpoints.findSince(timestamp, viewType));

        Collection events = new ArrayList<>();
        for (DynamicEvent event : dynamicEvents)
        {
            IEvent newEvent = new Event();
            newEvent.setUniqueId(event.getUniqueId());
            newEvent.setUrn(event.getUrn());
            newEvent.setMoniker(event.getMoniker());
            if (event.getAccount() != null)
            {
                newEvent.setAccount(event.getAccount());
            }
            newEvent.setEventType(event.getEventType());
            if (event.getUser() != null)
            {
                newEvent.setUser(event.getUser());
            }
            if (event.getSource() != null)
            {
                newEvent.setSource(event.getSource().toString());
            }
            events.add(newEvent);
        }

        return events;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy