/extra/nosql/mongo/src/main/java/org/javaee7/extra/nosql/mongo/Person.java

https://gitlab.com/MichelZuniga/javaee7-samples · Java · 104 lines · 45 code · 17 blank · 42 comment · 0 complexity · 9d33483eb55fbcd626caef050aab06bc MD5 · raw file

  1. /*
  2. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
  3. *
  4. * Copyright (c) 2013 Oracle and/or its affiliates. All rights reserved.
  5. *
  6. * The contents of this file are subject to the terms of either the GNU
  7. * General Public License Version 2 only ("GPL") or the Common Development
  8. * and Distribution License("CDDL") (collectively, the "License"). You
  9. * may not use this file except in compliance with the License. You can
  10. * obtain a copy of the License at
  11. * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
  12. * or packager/legal/LICENSE.txt. See the License for the specific
  13. * language governing permissions and limitations under the License.
  14. *
  15. * When distributing the software, include this License Header Notice in each
  16. * file and include the License file at packager/legal/LICENSE.txt.
  17. *
  18. * GPL Classpath Exception:
  19. * Oracle designates this particular file as subject to the "Classpath"
  20. * exception as provided by Oracle in the GPL Version 2 section of the License
  21. * file that accompanied this code.
  22. *
  23. * Modifications:
  24. * If applicable, add the following below the License Header, with the fields
  25. * enclosed by brackets [] replaced by your own identifying information:
  26. * "Portions Copyright [year] [name of copyright owner]"
  27. *
  28. * Contributor(s):
  29. * If you wish your version of this file to be governed by only the CDDL or
  30. * only the GPL Version 2, indicate your decision by adding "[Contributor]
  31. * elects to include this software in this distribution under the [CDDL or GPL
  32. * Version 2] license." If you don't indicate a single choice of license, a
  33. * recipient has the option to distribute your version of this file under
  34. * either the CDDL, the GPL Version 2 or to extend the choice of license to
  35. * its licensees as provided above. However, if you add GPL Version 2 code
  36. * and therefore, elected the GPL Version 2 license, then the option applies
  37. * only if the new code is made subject to such option by the copyright
  38. * holder.
  39. */
  40. package org.javaee7.extra.nosql.mongo;
  41. import com.mongodb.BasicDBObject;
  42. import com.mongodb.DBObject;
  43. import javax.enterprise.inject.Model;
  44. import javax.validation.constraints.Size;
  45. /**
  46. * @author Arun Gupta
  47. */
  48. @Model
  49. public class Person {
  50. @Size(min = 1, max = 20)
  51. private String name;
  52. private int age;
  53. public Person() {
  54. }
  55. public Person(String name, int age) {
  56. this.name = name;
  57. this.age = age;
  58. }
  59. public String getName() {
  60. return name;
  61. }
  62. public void setName(String name) {
  63. this.name = name;
  64. }
  65. public int getAge() {
  66. return age;
  67. }
  68. public void setAge(int age) {
  69. this.age = age;
  70. }
  71. public BasicDBObject toDBObject() {
  72. BasicDBObject doc = new BasicDBObject();
  73. doc.put("name", name);
  74. doc.put("age", age);
  75. return doc;
  76. }
  77. public static Person fromDBObject(DBObject doc) {
  78. Person p = new Person();
  79. p.name = (String) doc.get("name");
  80. p.age = (int) doc.get("age");
  81. return p;
  82. }
  83. @Override
  84. public String toString() {
  85. return name + ", " + age;
  86. }
  87. }