/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
*
* 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.
*/
package org.apache.streams.data.util;
import org.apache.streams.jackson.StreamsJacksonMapper;
import org.apache.streams.pojo.json.Activity;
import org.apache.streams.pojo.json.ActivityObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;
/**
* Utility class for managing activities
*
* <p/>
* Deprecated: Use {@link org.apache.streams.pojo.extensions.ExtensionUtil}
*/
@Deprecated
public class ActivityUtil {
private ActivityUtil() {}
/**
* Property on the activity object to use for extensions.
*/
public static final String EXTENSION_PROPERTY = "extensions";
/**
* The number of +1, Like, favorites, etc that the post has received.
*/
public static final String LIKES_EXTENSION = "likes";
/**
* The number of retweets, shares, etc that the post has received.
*/
public static final String REBROADCAST_EXTENSION = "rebroadcasts";
/**
* The language of the post.
*/
public static final String LANGUAGE_EXTENSION = "language";
/**
* Location that the post was made or the actor's residence.
*/
public static final String LOCATION_EXTENSION = "location";
/**
* Country that the post was made.
*/
public static final String LOCATION_EXTENSION_COUNTRY = "country";
/**
* Specific JSON-geo coordinates (long,lat).
*/
public static final String LOCATION_EXTENSION_COORDINATES = "coordinates";
private static final ObjectMapper mapper = StreamsJacksonMapper.getInstance();
/**
* Creates a standard extension property.
* @param activity activity to create the property in
* @return the Map representing the extensions property
*/
@SuppressWarnings("unchecked")
@Deprecated
public static Map<String, Object> ensureExtensions(Activity activity) {
Map<String, Object> extensions = (Map)activity.getAdditionalProperties().get(EXTENSION_PROPERTY);
if (extensions == null) {
extensions = new HashMap<>();
activity.setAdditionalProperty(EXTENSION_PROPERTY, extensions);
}
return extensions;
}
/**
* Gets a formatted ID.
* @param providerName name of the provider
* @param personId ID of the person within the system
* @return id:{providerName}:people:{personId}
*/
public static String getPersonId(String providerName, String personId) {
return String.format("id:%s:people:%s", providerName, personId);
}
/**
* Gets a formatted provider ID.
* @param providerName name of the provider
* @return id:providers:{providerName}
*/
public static String getProviderId(String providerName) {
return String.format("id:providers:%s", providerName);
}
/**
* Gets a formatted object ID.
* @param provider name of the provider
* @param objectType type of the object
* @param objectId the ID of the object
* @return id:{provider}:{objectType}s:{objectId}
*/
public static String getObjectId(String provider, String objectType, String objectId) {
return String.format("id:%s:%ss:%s", provider, objectType, objectId);
}
/**
* Gets a formatted activity ID.
* @param providerName name of the provider
* @param activityId ID of the provider
* @return id:{providerName}:activities:{activityId}
*/
public static String getActivityId(String providerName, String activityId) {
return String.format("id:%s:activities:%s", providerName, activityId);
}
/**
* Check validity of Activity.
* @param activity Activity
* @return isValid
*/
public static boolean isValid(Activity activity) {
return activity != null
&& activity.getId() != null
&& activity.getVerb() != null
&& activity.getProvider() != null
&& activity.getProvider().getId() != null;
}
/**
* Check validity of ActivityObject.
* @param activityObject ActivityObject
* @return isValid
*/
public static boolean isValid(ActivityObject activityObject) {
return activityObject != null
&& activityObject.getId() != null
&& activityObject.getObjectType() != null;
}
}