Repository: incubator-hivemall Updated Branches: refs/heads/master ac4136f82 -> 38224bb23
Close #19: Add Java annotations Project: http://git-wip-us.apache.org/repos/asf/incubator-hivemall/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-hivemall/commit/38224bb2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-hivemall/tree/38224bb2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-hivemall/diff/38224bb2 Branch: refs/heads/master Commit: 38224bb23bd64ebc5187a1fd506d2031b6d0f446 Parents: ac4136f Author: myui <[email protected]> Authored: Mon Jan 16 18:27:29 2017 +0900 Committer: myui <[email protected]> Committed: Mon Jan 16 18:27:29 2017 +0900 ---------------------------------------------------------------------- .../java/hivemall/annotations/Experimental.java | 34 ++++++++++++++++++++ .../main/java/hivemall/annotations/Issue.java | 30 +++++++++++++++++ .../hivemall/annotations/VisibleForTesting.java | 31 ++++++++++++++++++ .../KernelExpansionPassiveAggressiveUDTF.java | 7 +++- .../main/java/hivemall/fm/FFMPredictUDF.java | 5 +++ .../fm/FieldAwareFactorizationMachineUDTF.java | 1 + 6 files changed, 107 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-hivemall/blob/38224bb2/core/src/main/java/hivemall/annotations/Experimental.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/hivemall/annotations/Experimental.java b/core/src/main/java/hivemall/annotations/Experimental.java new file mode 100644 index 0000000..c4644b9 --- /dev/null +++ b/core/src/main/java/hivemall/annotations/Experimental.java @@ -0,0 +1,34 @@ +/* + * 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 + * 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. + */ +package hivemall.annotations; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotate program elements that might be changed in the future release. + */ +@Retention(RetentionPolicy.CLASS) +@Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PACKAGE}) +@Documented +public @interface Experimental { +} http://git-wip-us.apache.org/repos/asf/incubator-hivemall/blob/38224bb2/core/src/main/java/hivemall/annotations/Issue.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/hivemall/annotations/Issue.java b/core/src/main/java/hivemall/annotations/Issue.java new file mode 100644 index 0000000..59fe348 --- /dev/null +++ b/core/src/main/java/hivemall/annotations/Issue.java @@ -0,0 +1,30 @@ +/* + * 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 + * 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. + */ +package hivemall.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Linked to an issue URL. + */ +@Retention(RetentionPolicy.SOURCE) +public @interface Issue { + String ref(); +} http://git-wip-us.apache.org/repos/asf/incubator-hivemall/blob/38224bb2/core/src/main/java/hivemall/annotations/VisibleForTesting.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/hivemall/annotations/VisibleForTesting.java b/core/src/main/java/hivemall/annotations/VisibleForTesting.java new file mode 100644 index 0000000..2337fa2 --- /dev/null +++ b/core/src/main/java/hivemall/annotations/VisibleForTesting.java @@ -0,0 +1,31 @@ +/* + * 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 + * 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. + */ +package hivemall.annotations; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Annotates a program element that is only for use in test codes. + */ +@Retention(RetentionPolicy.CLASS) +@Documented +public @interface VisibleForTesting { +} http://git-wip-us.apache.org/repos/asf/incubator-hivemall/blob/38224bb2/core/src/main/java/hivemall/classifier/KernelExpansionPassiveAggressiveUDTF.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/hivemall/classifier/KernelExpansionPassiveAggressiveUDTF.java b/core/src/main/java/hivemall/classifier/KernelExpansionPassiveAggressiveUDTF.java index 3e28932..7cb7a58 100644 --- a/core/src/main/java/hivemall/classifier/KernelExpansionPassiveAggressiveUDTF.java +++ b/core/src/main/java/hivemall/classifier/KernelExpansionPassiveAggressiveUDTF.java @@ -18,6 +18,8 @@ */ package hivemall.classifier; +import hivemall.annotations.Experimental; +import hivemall.annotations.VisibleForTesting; import hivemall.common.LossFunctions; import hivemall.model.FeatureValue; import hivemall.model.PredictionModel; @@ -51,10 +53,13 @@ import org.apache.hadoop.io.IntWritable; * <pre> * Hideki Isozaki and Hideto Kazawa: Efficient Support Vector Classifiers for Named Entity Recognition, Proc.COLING, 2002 * </pre> + * + * @since v0.5-rc.1 */ @Description(name = "train_kpa", value = "_FUNC_(array<string|int|bigint> features, int label [, const string options])" + " - returns a relation <h int, hk int, float w0, float w1, float w2, float w3>") +@Experimental public final class KernelExpansionPassiveAggressiveUDTF extends BinaryOnlineClassifierUDTF { // ------------------------------------ @@ -77,7 +82,7 @@ public final class KernelExpansionPassiveAggressiveUDTF extends BinaryOnlineClas public KernelExpansionPassiveAggressiveUDTF() {} - //@VisibleForTesting + @VisibleForTesting float getLoss() {//only used for testing purposes at the moment return _loss; } http://git-wip-us.apache.org/repos/asf/incubator-hivemall/blob/38224bb2/core/src/main/java/hivemall/fm/FFMPredictUDF.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/hivemall/fm/FFMPredictUDF.java b/core/src/main/java/hivemall/fm/FFMPredictUDF.java index e32c61a..2de5170 100644 --- a/core/src/main/java/hivemall/fm/FFMPredictUDF.java +++ b/core/src/main/java/hivemall/fm/FFMPredictUDF.java @@ -18,6 +18,7 @@ */ package hivemall.fm; +import hivemall.annotations.Experimental; import hivemall.utils.hadoop.HiveUtils; import hivemall.utils.lang.NumberUtils; @@ -40,10 +41,14 @@ import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectIn import org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector; import org.apache.hadoop.io.Text; +/** + * @since v0.5-rc.1 + */ @Description(name = "ffm_predict", value = "_FUNC_(string modelId, string model, array<string> features)" + " returns a prediction result in double from a Field-aware Factorization Machine") @UDFType(deterministic = true, stateful = false) +@Experimental public final class FFMPredictUDF extends GenericUDF { private StringObjectInspector _modelIdOI; http://git-wip-us.apache.org/repos/asf/incubator-hivemall/blob/38224bb2/core/src/main/java/hivemall/fm/FieldAwareFactorizationMachineUDTF.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/hivemall/fm/FieldAwareFactorizationMachineUDTF.java b/core/src/main/java/hivemall/fm/FieldAwareFactorizationMachineUDTF.java index 62fbfa1..fe27269 100644 --- a/core/src/main/java/hivemall/fm/FieldAwareFactorizationMachineUDTF.java +++ b/core/src/main/java/hivemall/fm/FieldAwareFactorizationMachineUDTF.java @@ -50,6 +50,7 @@ import org.apache.hadoop.io.Text; * Field-aware Factorization Machines. * * @link https://www.csie.ntu.edu.tw/~cjlin/libffm/ + * @since v0.5-rc.1 */ @Description( name = "train_ffm",
