Package er.cayenne.example.components

Source Code of er.cayenne.example.components.Main

package er.cayenne.example.components;

import java.util.Calendar;
import java.util.Collections;
import java.util.GregorianCalendar;
import java.util.List;

import org.apache.cayenne.Cayenne;
import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.ExpressionFactory;
import org.apache.cayenne.query.SelectQuery;

import com.webobjects.appserver.WOContext;

import er.cayenne.CayenneApplication;
import er.cayenne.example.persistent.Artist;
import er.cayenne.example.persistent.Gallery;
import er.cayenne.example.persistent.Painting;
import er.extensions.components.ERXComponent;

public class Main extends ERXComponent {
 
  private ObjectContext objContext;
  public Artist picasso;
  public Painting painting;
 
  public Main(WOContext context) {
    super(context);

    objContext = application().newObjectContext();

    newObjectsTutorial();
    selectTutorial();
    //deleteTutorial();
  }

  @Override
  public CayenneApplication application() {
    return (CayenneApplication)super.application();
  }
 
  private void newObjectsTutorial() {
    // creating new Artist
    picasso = objContext.newObject(Artist.class);
    picasso.setName("Pablo Picasso");
    picasso.setDateOfBirthString("18811025");

    // Creating other objects
    Gallery metropolitan = objContext.newObject(Gallery.class);
    metropolitan.setName("Metropolitan Museum of Art");

    Painting girl = objContext.newObject(Painting.class);
    girl.setName("Girl Reading at a Table");

    Painting stein = objContext.newObject(Painting.class);
    stein.setName("Gertrude Stein");

    // connecting objects together via relationships
    picasso.addToPaintings(girl);
    picasso.addToPaintings(stein);

    girl.setGallery(metropolitan);
    stein.setGallery(metropolitan);

    // saving all the changes above
    objContext.commitChanges();
  }

  @SuppressWarnings("unused")
  private void selectTutorial() {
    // SelectQuery examples
    SelectQuery select1 = new SelectQuery(Painting.class);
    List<Painting> paintings1 = objContext.performQuery(select1);

    Expression qualifier2 = ExpressionFactory.likeIgnoreCaseExp(
        Painting.NAME_KEY, "gi%");
    SelectQuery select2 = new SelectQuery(Painting.class, qualifier2);
    List<Painting> paintings2 = objContext.performQuery(select2);

    Calendar c = new GregorianCalendar();
    c.set(c.get(Calendar.YEAR) - 100, 0, 1, 0, 0, 0);

    Expression qualifier3 = Expression
        .fromString("artist.dateOfBirth < $date");
    qualifier3 = qualifier3.expWithParameters(Collections.singletonMap(
        "date", c.getTime()));
    SelectQuery select3 = new SelectQuery(Painting.class, qualifier3);
    List<Painting> paintings3 = objContext.performQuery(select3);
  }

  private void deleteTutorial() {
    // Delete object examples
    Expression qualifier = ExpressionFactory.matchExp(Artist.NAME_KEY,
        "Pablo Picasso");
    SelectQuery selectToDelete = new SelectQuery(Artist.class, qualifier);
    Artist picasso = (Artist) Cayenne.objectForQuery(objContext,
        selectToDelete);

    if (picasso != null) {
      objContext.deleteObjects(picasso);
      objContext.commitChanges();
    }
  }
 
}
TOP

Related Classes of er.cayenne.example.components.Main

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.