/* * Copyright (C) 2016, The Android Open Source Project * * Licensed 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. */ #include "generate_java.h" #include <memory> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <android-base/stringprintf.h> #include "code_writer.h" #include "type_java.h" using std::unique_ptr; using ::android::aidl::java::Variable; using std::string; using android::base::StringPrintf; namespace android { namespace aidl { // ================================================= VariableFactory::VariableFactory(const string& base) : base_(base), index_(0) { } Variable* VariableFactory::Get(const Type* type) { Variable* v = new Variable( type, StringPrintf("%s%d", base_.c_str(), index_)); vars_.push_back(v); index_++; return v; } Variable* VariableFactory::Get(int index) { return vars_[index]; } namespace java { int generate_java(const string& filename, const string& originalSrc, AidlInterface* iface, JavaTypeNamespace* types, const IoDelegate& io_delegate, const JavaOptions& options) { Class* cl = generate_binder_interface_class(iface, types, options); Document* document = new Document( "" /* no comment */, iface->GetPackage(), originalSrc, unique_ptr<Class>(cl)); CodeWriterPtr code_writer = io_delegate.GetCodeWriter(filename); document->Write(code_writer.get()); return 0; } } // namespace java } // namespace android } // namespace aidl