001/*
002 * Stallion Core: A Modern Web Framework
003 *
004 * Copyright (C) 2015 - 2016 Stallion Software LLC.
005 *
006 * This program is free software: you can redistribute it and/or modify it under the terms of the
007 * GNU General Public License as published by the Free Software Foundation, either version 2 of
008 * the License, or (at your option) any later version. This program is distributed in the hope that
009 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
011 * License for more details. You should have received a copy of the GNU General Public License
012 * along with this program.  If not, see <http://www.gnu.org/licenses/gpl-2.0.html>.
013 *
014 *
015 *
016 */
017
018package io.stallion.forms;
019
020import io.stallion.Context;
021import io.stallion.dataAccess.DataAccessRegistration;
022import io.stallion.dataAccess.StandardModelController;
023import io.stallion.dataAccess.db.DB;
024import io.stallion.dataAccess.db.DbPersister;
025import io.stallion.dataAccess.file.JsonFilePersister;
026import io.stallion.settings.Settings;
027
028import java.io.File;
029import java.util.UUID;
030
031
032public class SimpleFormSubmissionController extends StandardModelController<SimpleFormSubmission> {
033
034    public static SimpleFormSubmissionController instance() {
035        return (SimpleFormSubmissionController) Context.dal().get("simple_form_submissions");
036    }
037
038    public static void register() {
039        DataAccessRegistration registration = new DataAccessRegistration()
040                .setControllerClass(SimpleFormSubmissionController.class)
041                .setModelClass(SimpleFormSubmission.class);
042        if (DB.instance() == null) {
043            registration
044                    .setPersisterClass(JsonFilePersister.class)
045                    .setPath("simple_form_submissions")
046                    .setNameSpace("")
047                    .setWritable(true)
048                    .setUseDataFolder(true)
049                    .setShouldWatch(true);
050            registration.hydratePaths(Settings.instance().getTargetFolder());
051            File dir = new File(registration.getAbsolutePath());
052            if (!dir.isDirectory()) {
053                dir.mkdirs();
054            }
055        } else {
056            registration
057                    .setTableName("simple_form_submissions")
058                    .setBucket("simple_form_submissions")
059                    .setPersisterClass(DbPersister.class);
060        }
061        Context.dal().register(registration);
062        Context.dal().register(registration);
063    }
064
065
066    public Object generateId(SimpleFormSubmission obj) {
067        return UUID.randomUUID().toString();
068    }
069}