001/**
002 * Copyright 2013 John Ericksen
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *    http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.androidtransfuse.plugins;
017
018import org.androidtransfuse.ConfigurationRepository;
019import org.androidtransfuse.TransfusePlugin;
020import org.androidtransfuse.annotations.*;
021import org.androidtransfuse.bootstrap.Bootstrap;
022import org.androidtransfuse.listeners.ServiceOnStartCommand;
023import org.androidtransfuse.listeners.ServiceOnUnbind;
024import org.androidtransfuse.util.AndroidLiterals;
025
026/**
027 * @author John Ericksen
028 */
029@Bootstrap
030public class ServicePlugin implements TransfusePlugin{
031    @Override
032    public void run(ConfigurationRepository repository) {
033        repository.component(Service.class).method("onCreate").event(OnCreate.class).registration().superCall();
034        repository.component(Service.class).method("onDestroy").event(OnDestroy.class).superCall();
035        repository.component(Service.class).method("onLowMemory").event(OnLowMemory.class).superCall();
036        repository.component(Service.class).method("onRebind", AndroidLiterals.INTENT).event(OnRebind.class).superCall();
037        repository.component(Service.class).method("onConfigurationChanged", AndroidLiterals.CONTENT_CONFIGURATION).event(OnConfigurationChanged.class).superCall();
038        repository.component(Service.class).extending(AndroidLiterals.INTENT_SERVICE)
039                .method("onHandleIntent", AndroidLiterals.INTENT).event(OnHandleIntent.class).superCall();
040
041        repository.component(Service.class).callThroughEvent(ServiceOnStartCommand.class);
042        repository.component(Service.class).callThroughEvent(ServiceOnUnbind.class);
043    }
044}