You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2012/01/05 22:51:42 UTC
svn commit: r1227857 - in
/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra:
ClientSecrets.java Difference.java
Author: jmsnell
Date: Thu Jan 5 21:51:42 2012
New Revision: 1227857
URL: http://svn.apache.org/viewvc?rev=1227857&view=rev
Log:
Simple ClientSecrets impl... (see http://code.google.com/p/google-api-python-client/wiki/ClientSecrets) ... basically, just implements reading and writing the simple format
Added:
abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/ClientSecrets.java (with props)
Modified:
abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Difference.java
Added: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/ClientSecrets.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/ClientSecrets.java?rev=1227857&view=auto
==============================================================================
--- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/ClientSecrets.java (added)
+++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/ClientSecrets.java Thu Jan 5 21:51:42 2012
@@ -0,0 +1,251 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. 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 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. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+package org.apache.abdera2.activities.extra;
+
+import java.io.InputStream;
+import java.io.Reader;
+import java.util.Locale;
+import java.util.Map;
+
+import org.apache.abdera2.activities.model.ASBase;
+import org.apache.abdera2.activities.model.IO;
+
+import com.google.common.base.Supplier;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Maps;
+import static com.google.common.base.Preconditions.checkNotNull;
+
+/**
+ * Basic implementation of... http://code.google.com/p/google-api-python-client/wiki/ClientSecrets
+ */
+public final class ClientSecrets extends ASBase {
+
+ public static ClientSecrets read(InputStream in) {
+ return read(IO.get(),in,"UTF-8");
+ }
+
+ public static ClientSecrets read(InputStream in, String charset) {
+ return read(IO.get(),in,charset);
+ }
+
+ public static ClientSecrets read(IO io, InputStream in) {
+ return read(io,in,"UTF-8");
+ }
+
+ public static ClientSecrets read(IO io, InputStream in, String charset) {
+ return io.readAs(in, charset, ClientSecrets.class);
+ }
+
+ public static ClientSecrets read(Reader in) {
+ return read(IO.get(),in);
+ }
+
+ public static ClientSecrets read(IO io, Reader in) {
+ return io.readAs(in, ClientSecrets.class);
+ }
+
+ public static enum Type {
+ INSTALLED, WEB;
+ private final String ln;
+ Type() {
+ this.ln = name().toLowerCase(Locale.US);
+ }
+ public String label() {
+ return ln;
+ }
+ }
+
+ public ASBase getType(Type type) {
+ return has(type.label()) ? this.<ASBase>getProperty(type.label()) : null;
+ }
+
+ public ASBase getType(String type) {
+ if (has(type)) {
+ Object obj = getProperty(type);
+ return obj instanceof ASBase ? (ASBase)obj : null;
+ } else return null;
+ }
+
+ public String getClientId(Type type) {
+ return this.<String>get(checkNotNull(type).label(), "client_id");
+ }
+
+ public String getClientSecret(Type type) {
+ return this.<String>get(checkNotNull(type).label(), "client_secret");
+ }
+
+ public Iterable<String> getRedirectUris(Type type) {
+ return this.<Iterable<String>>get(checkNotNull(type).label(), "redirect_uris");
+ }
+
+ public String getAuthUri(Type type) {
+ return this.<String>get(checkNotNull(type).label(), "auth_uri");
+ }
+
+ public String getTokenUri(Type type) {
+ return this.<String>get(checkNotNull(type).label(), "token_uri");
+ }
+
+ public <X>X getProperty(Type type, String field) {
+ return this.<X>get(checkNotNull(type).label(), field);
+ }
+
+ public String getClientId(String type) {
+ return this.<String>get(checkNotNull(type), "client_id");
+ }
+
+ public String getClientSecret(String type) {
+ return this.<String>get(checkNotNull(type), "client_secret");
+ }
+
+ public Iterable<String> getRedirectUris(String type) {
+ return this.<Iterable<String>>get(checkNotNull(type), "redirect_uris");
+ }
+
+ public String getAuthUri(String type) {
+ return this.<String>get(checkNotNull(type), "auth_uri");
+ }
+
+ public String getTokenUri(String type) {
+ return this.<String>get(checkNotNull(type), "token_uri");
+ }
+
+ public <X>X getProperty(String type, String field) {
+ return this.<X>get(checkNotNull(type), field);
+ }
+
+ private <X>X get(String type, String field) {
+ ASBase base = getProperty(type);
+ return base != null ? base.<X>getProperty(field) : null;
+ }
+
+ public ClientSecrets(Map<String,Object> map) {
+ super(map,Builder.class,ClientSecrets.class);
+ }
+
+ public static Builder makeClientSecrets() {
+ return new Builder();
+ }
+
+ public static final class Builder extends ASBase.Builder<ClientSecrets,Builder> {
+
+ private final Map<String,ASBase.ASBuilder> builders =
+ Maps.newHashMap();
+
+ public Builder() {
+ super(ClientSecrets.class,Builder.class);
+ }
+ protected Builder(Map<String,Object> map) {
+ super(map,ClientSecrets.class,Builder.class);
+ }
+
+ public Builder clientId(Type type, String id) {
+ field(checkNotNull(type).label(), "client_id", id);
+ return this;
+ }
+
+ public Builder clientSecret(Type type, String secret) {
+ field(checkNotNull(type).label(), "client_secret", secret);
+ return this;
+ }
+
+ public Builder redirectUris(Type type, String... urls) {
+ field(checkNotNull(type).label(), "redirect_uris", ImmutableSet.copyOf(checkNotNull(urls)));
+ return this;
+ }
+
+ public Builder authUri(Type type, String url) {
+ field(checkNotNull(type).label(), "auth_uri", url);
+ return this;
+ }
+
+ public Builder tokenUri(Type type, String url) {
+ field(checkNotNull(type).label(), "token_uri", url);
+ return this;
+ }
+
+ public <X>Builder set(Type type, String field, Supplier<X> val) {
+ field(checkNotNull(type).label(), field, val.get());
+ return this;
+ }
+
+ public Builder set(Type type, String field, Object val) {
+ field(checkNotNull(type).label(), field, val);
+ return this;
+ }
+
+ public Builder clientId(String type, String id) {
+ field(checkNotNull(type), "client_id", id);
+ return this;
+ }
+
+ public Builder clientSecret(String type, String secret) {
+ field(checkNotNull(type), "client_secret", secret);
+ return this;
+ }
+
+ public Builder redirectUris(String type, String... urls) {
+ field(checkNotNull(type), "redirect_uris", ImmutableSet.copyOf(checkNotNull(urls)));
+ return this;
+ }
+
+ public Builder authUri(String type, String url) {
+ field(checkNotNull(type), "auth_uri", url);
+ return this;
+ }
+
+ public Builder tokenUri(String type, String url) {
+ field(checkNotNull(type), "token_uri", url);
+ return this;
+ }
+
+ public <X>Builder set(String type, String field, Supplier<X> val) {
+ field(checkNotNull(type), field, val.get());
+ return this;
+ }
+
+ public Builder set(String type, String field, Object val) {
+ field(checkNotNull(type), field, val);
+ return this;
+ }
+
+ private void field(String key, String field, String id) {
+ getBuilder(key).set(field, id);
+ }
+
+ private void field(String key, String field, Object id) {
+ getBuilder(key).set(field, id);
+ }
+
+ private ASBase.ASBuilder getBuilder(String key) {
+ ASBase.ASBuilder builder = builders.get(key);
+ if (builder == null) {
+ builder = ASBase.make();
+ builders.put(key,builder);
+ }
+ return builder;
+ }
+
+ protected void preGet() {
+ for (Map.Entry<String, ASBase.ASBuilder> entry : builders.entrySet())
+ set(entry.getKey().toLowerCase(), entry.getValue());
+ }
+
+ }
+
+}
Propchange: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/ClientSecrets.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Difference.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Difference.java?rev=1227857&r1=1227856&r2=1227857&view=diff
==============================================================================
--- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Difference.java (original)
+++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/extra/Difference.java Thu Jan 5 21:51:42 2012
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. 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 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. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
package org.apache.abdera2.activities.extra;
import java.util.Map;